iPhoneアプリで作業していて、コントローラーのIBOutletフィールドへの(null)参照を取得しています。XIBでファイルの所有者として設定されているUIViewControllerサブクラスがあります。コントローラに接続されているUI要素のセットがあります。NIBからロードし、それらのUI要素にプロパティを設定しようとすると、それらが(null)であることがわかります。明確にするために、いくつかのコード:
ExpandSearchPageController.h:
@interface ExpandSearchPageController : UIViewController
{
IBOutlet UITextView * completeMessageView;
}
-(void)checkTextField;
@property (nonatomic, retain) IBOutlet UITextView * completeMessageView;
ExpandSearchPageController.m:
@implementation ExpandSearchPageController
@synthesize completeMessageView;
-(void)checkTextField
{
NSLog(@"text field: %@",completeMessageView);
}
ExpandSearchPageControllerは、ExpandSearchPage.xibのファイルの所有者として設定されます。ExpandSearchPage.xibのUITextViewはcompleteMessageViewに接続されています。
電話すると
ExpandSearchPageController * searchExpanderPage = [[ExpandSearchPageController alloc] initWithNibName:@"ExpandSearchPage" bundle:[NSBundle mainBundle]];
[searchExpanderPage checkTextField];
結果は
"text field: (null)"