2012-02-18 4 views
2

iOS5でARCを使用しているときに弱いまたは強いキーワードで宣言する必要があるビューで作成しているサブビューへの参照を混乱させています。ここでプログラマチックに作成されたすべてのサブビューへの参照はすべてweakと宣言する必要がありますか?

は私のヘッダファイルのサンプルです:

#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 

私は、私が作成し、参照したいのですビューは、強力なキーワードで宣言されなければならないという印象の下で実行する私はこれらのビューを所有していますので、(Iそれらを作成する)。しかし、私は私がストーリーボードで作成したビューを参照しているので、弱いとしてhiddenBrowserViewを宣言しました。このapporachは正しいですか、私はすべてのこれらのビューの参照を私がプログラムで作成するビューへの参照のために弱いものにする必要がありますか?ありがとう!

答えて

2

私の知る限り、サブビューはコントローラのメインビューで強く参照されています。だからあなたのメインビューが下がったときに役に立たないので、それらを強く参照する目的はありません。他の方法で

  1. 、あなたはプログラムでサブビューを作成し、あなたのコントローラのメインビューににそれらを追加
  2. コントローラのメインビューは、を強くと参照しています。
  3. このビューでは、弱いのプロパティを指します。
  4. コントローラのメインビューがで割り当て解除された場合、サブビューはです。
+0

あなたの答えをありがとう:私はあなたが正しいと思います。私は、私の混乱は、あなたが作成したばかりのビュー上にポインタを持っていれば、コントローラのメインビューがそれらを強く参照するように注意しているので、必ずしもこのポインタを強く参照する必要はないという事実から来ていると思います。 – tiguero

関連する問題