我已经在这里查看了类似问题的一些以前的答案,但我仍然不明白。
这是代码(来自 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])
被执行。
所以我有三个问题。是什么(null)
?对象或指针如何变成(null)
? 测试这种情况的正确方法是什么?