私は本当に奇妙な問題に直面しています。のは、それが初期化子だと私はのUIViewControllerの私のサブクラスを持っているとしましょう :iOS - 指定されたイニシャライザでiVarに割り当てるとiVarがゼロになります
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
managedObjectContext:(NSManagedObjectContext *)context
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
self.managedObjectContext = context;
}
return self;
}
は、ここで私はself.managedObjectContextを宣言する方法は次のとおりです。その後、
@interface identificationViewController()
@property (retain, nonatomic) NSManagedObjectContext *managedObjectContext;
//...
@end
そしてAppDelegate私に最後に
@synthesize managedObjectContext = _managedObjectContext;
を合成これを行う:
identificationViewController *identificationVC = [[identificationViewController
alloc] initWithNibName:@"identificationViewController" bundle:nil
managedObjectContext:self.managedObjectContext];
self.window.rootViewController = identificationVC;
[identificationVC release];
identityViewControllerの "init .."をデバッグすると、パラメータコンテキストはnilと異なりますが、=の直後では、self.managedObjectContextはまだnilと同じです!!
なぜか分かりません。アイデアはありますか?
ありがとうございます。
EDIT:私はXCodeの4.3のバグがあります.Mない.hの
これがnullかどうかを判断するには、gdbで出力したのでしょうか、それともデバッガの値を見ましたか?値を更新するにはしばしば時間がかかることがわかりました.gdb istの方がはるかに優れています(変数を右クリックして "印刷の説明"がその仕事をします) – LordT
クラスを大文字にしてください。ココアでは、命名と大文字の使用は大変重要です。 –
'self(self)'行に 'self'がnil以外であるか? –