Tha*_*nks 11 iphone cocoa-touch uikit
在Apple的例子中,我看到了这个:
myController *controller = [viewControllers objectAtIndex:page];
if ((NSNull *)controller == [NSNull null]) {
controller = [[myController alloc] initWithPageNumber:page];
[viewControllers replaceObjectAtIndex:page withObject:controller];
[controller release];
}
Run Code Online (Sandbox Code Playgroud)
我对这一行非常感兴趣:
if ((NSNull *)controller == [NSNull null]) {
Run Code Online (Sandbox Code Playgroud)
如果我愿意这样做,我会检查是否为零.为什么他们这样做太复杂了?那到底是做什么的?对我来说,看起来他们正在将控制器对象转换为NSNull,然后检查它是否与NSNull中的null相同.
AFAIK nil表示"无对象",null表示"无".请帮我看清楚图片吧!
Mar*_*ote 12
大多数容器不允许将'nil'对象插入其中.如果您确实想在容器中插入空值,则可以使用NSNull实例(NSNull是单例).
在您的特定示例中,控制器是从数组中获取的.然后,确保对象不是NSNull实例是一种好习惯.
归档时间: |
|
查看次数: |
6517 次 |
最近记录: |