Должны ли все ссылки на программно созданные подпредставления объявлены слабыми? - PullRequest
2 голосов
/ 18 февраля 2012

Я запутался, так как ссылка на подпредставления, которые я создаю в представлении, должна быть объявлена ​​со слабым или сильным ключевым словом при использовании ARC в iOS 5.

Вот пример моего заголовочного файла:

#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>

@class SCLGridView;

@interface MyViewController : UIViewController <UIPopoverControllerDelegate, MFMailComposeViewControllerDelegate>
    @property (weak, nonatomic) IBOutlet UIView *hiddenBrowserView; 
    @property (strong, nonatomic) SCLGridView *gridView;
    @property (strong, nonatomic) UIImageView *backgroundView; 
    @property (strong, nonatomic) UIView *backgroundShadowView;
    @property (strong, nonatomic) UIPopoverController* popOverController;
@end

У меня сложилось впечатление, что представления, которые я создаю и на которые хочу сослаться, должны быть объявлены с ключевым словом strong, потому что я являюсь владельцем этих представлений (я их создаю).Однако я объявил hiddenBrowserView как слабый, потому что я ссылаюсь на представление, которое я создал в раскадровке.Правильно ли это apporach, или я должен сделать все эти ссылки на представления слабыми даже для ссылки на представления, которые я создаю программно?Спасибо!

1 Ответ

2 голосов
/ 19 февраля 2012

Насколько я знаю, на подпредставления строго ссылается основной вид вашего контроллера.Так что нет смысла ссылаться на них как на сильные, потому что они будут бесполезны, когда ваш основной вид отключится.

  1. Другими словами, вы создаете подпредставлений программно и добавьте их к основному виду вашего контроллера.
  2. Основной вид вашего контроллера ссылается на них сильно .
  3. И вы указываете на эти виды с слабым свойства.
  4. Когда основной вид вашего контроллера освобожден , то и подпредставления.
...