Я намагаюся навчитися автоматичного підрахунку посилань в iOS 5. Тепер перша частина цього питання повинна бути легкою:
Це правильно, що мені НЕ потрібно писати явні заяви про властивості випуску в мою угоду під час використання ARC? Іншими словами, чи правда, що наступне НЕ потребує явного угоди?
@interface MyClass : NSObject @property (strong, nonatomic) NSObject* myProperty; @end @implementation MyClass @synthesize myProperty; @end
Моє наступне і важливіше запитання виникає з рядка в документі Примітки до випуску ARC :
Вам не потрібно (справді не можна) випускати змінні екземплярів, але, можливо, вам доведеться викликати [self setDelegate: nil] на системних класах та іншому коді, який не компілюється за допомогою ARC.
Це ставить питання: як я можу знати, які системні класи не компілюються з ARC? Коли я повинен створювати власну транзакцію та явно встановлювати сильно зберігаючі властивості до нуля? Чи слід вважати, що всі класи NS та UI, що використовуються у властивостях, потребують явних операторських операцій?
Існує велика кількість інформації про SO та інших місцях щодо практики випуску резервного ivar ресурсу при використанні ручного відстеження посилань, але відносно мало про це при використанні ARC.
MyController : UIViewController
клас, який створює та володіє UIView, а також встановлює делегат представлення для себе. Це єдиний утримуючий власник цього погляду. Коли контролер переходить у взаємодію, подання також має перейти у взаємодію. Чи має значення тоді, якщо вказівник делегата звисає?