ここで同様の質問に対する以前の回答のいくつかを見てきましたが、まだ理解できません。
これがコードです(ShareKitから)
if (isDismissingView)
return;
NSLog(@"presentingViewController: %@", [self.currentView presentedViewController]);
if (self.currentView != nil)
{
// Dismiss the modal view
if ([self.currentView parentViewController] != nil)
{
self.isDismissingView = YES;
[[self.currentView parentViewController] dismissModalViewControllerAnimated:animated];
}
// for iOS5
else if ([self.currentView respondsToSelector:@selector(presentingViewController)] && [self.currentView presentingViewController]) {
//****** it executes this block ******
self.isDismissingView = YES;
[[self.currentView presentingViewController] dismissViewControllerAnimated:animated completion:^{ ... }
}
else
self.currentView = nil;
}
NSLog では、結果は です(null)
。これは明らかに nil と同じではありません。これは、nil でないかどうかをテストするブロックが
else if ([self.currentView respondsToSelector:@selector(presentingViewController)] && [self.currentView presentingViewController])
実行されます。
そこで、質問が 3 つあります。とは(null)
? オブジェクトまたはポインターはどのようになり(null)
ますか? この状態をテストする正しい方法は何ですか?