Я переключил свой проект на ARC, и я не понимаю, должен ли я использовать strong или weak для IBOutlets. Xcode делает это: в построителе интерфейсов, например, для создания UILabel, и я подключаю его с помощником редактора к моему ViewController, он создает это:
@property (nonatomic, strong) UILabel *aLabel;
Он использует strong, вместо этого я прочитал учебник на веб-сайте RayWenderlich, который говорит следующее:
Но для этих двух конкретных свойств у меня есть другие планы. Вместо
strong, мы объявим их какweak.
@property (nonatomic, weak) IBOutlet UITableView *tableView;
@property (nonatomic, weak) IBOutlet UISearchBar *searchBar;
weakявляется рекомендуемым соотношением для всех свойств выхода. Эти объекты просмотра уже являются частью представления диспетчера представлений иерархии и не нужно сохранять в другом месте. Большое преимущество объявления ваших торговых точекweakзаключается в том, что это экономит ваше время на viewDidUnload.В настоящее время наш
viewDidUnloadвыглядит так:
- (void)viewDidUnload
{
[super viewDidUnload];
self.tableView = nil;
self.searchBar = nil;
soundEffect = nil;
}
Теперь вы можете упростить его:
- (void)viewDidUnload
{
[super viewDidUnload];
soundEffect = nil;
}
Поэтому используйте weak вместо strong и удалите набор в nil в videDidUnload, вместо Xcode используйте strong и используйте self... = nil в viewDidUnload.
Мой вопрос: когда мне нужно использовать strong, а когда weak?
Я хочу также использовать для цели развертывания iOS 4, поэтому, когда мне нужно использовать unsafe_unretain? Любой может помочь мне хорошо объяснить небольшой учебник, когда используйте strong, weak и unsafe_unretain с ARC?
