Это действительно хороший вариант использовать ARC для IOS 4.0, где нет слабого свойства
Я работаю над проектом на базе ARC. Мой проект ориентирован на IOS 4.3. Поскольку для версии
Теперь я думаю, действительно ли хороший вариант использовать ARC с unsafe_unretained? Или я должен вернуться к ручному управлению памятью, так как мой проект нацелен на IOS 4.3.?
Если это хороший вариант для использования ARC в моем случае, где я должен установить свойства unsafe_unretained в nil? Я видел людей, делающих это в viewDidUnload, но viewDidUnload никогда не вызывается в обычном сценарии. Любая помощь с благодарностью.
2 ответа
Это действительно хороший вариант использовать ARC [без поддержки слабых]?
Да. ARC обычно считается большим преимуществом в краткости кода, удобочитаемости и уменьшает количество ошибок, связанных с памятью. Мое личное мнение, что это главное преимущество ARC.
Приятно поддерживать слабое и еще одно преимущество ARC (на iOS 5). Но иногда __weak
может скрывать ошибки, которые сразу же всплывают с __unsafe_unretained
,
В моем коде всякий раз, когда я использую weak
свойства или переменные я должен думать о последствиях. С другой стороны, остальная часть управления памятью ARC требует от меня меньше думать (что приятно).
Я должен использовать unsafe_unretained, который может вызвать висячие указатели.
Да, но в pre-ARC вы также использовали несохраненные указатели для слабых ссылок, так что в любом случае это не хуже того, что вы делаете сейчас.
Я также добавлю, что вы можете использовать weak
при использовании iOS 4.3, если вы используете библиотеку PLWeakCompatibility: https://github.com/plausiblelabs/PLWeakCompatibility