eri*_*ice 180 null cocoa objective-c
在observeValueForKeyPath:ofObject:change:context:
- 为什么文档使用NULL
而不是nil
在不指定上下文指针时?
Pau*_*lin 227
nil
应该只用来代替一个id
,我们Java和C++程序员会认为它是一个指向对象的指针.使用NULL
非对象指针.
看一下该方法的声明:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context
Run Code Online (Sandbox Code Playgroud)
Context是一个void *
(即一个C风格的指针),所以你肯定使用NULL
(有时被声明为(void *)0
)而不是nil
(它是类型id
).
Mar*_*eau 64
它们在技术上是相同的(0),但是nil通常用于Objective-C对象类型,而NULL用于c样式指针(void*).
And*_*rew 53
它们在技术上是相同的,仅在风格上有所不同:
nil
用于id
类型(和指向对象的指针).NULL
就是你用的void *
.0
.我通常使用与声明类型的语言匹配的变体.
小智 13
NULL
是C equivalent
的nil
,一个指向什么;
哪里nil is zero typed as id
,
NULL is zero typed as void*
.
一个重要的一点是你无法将消息发送到NULL.所以最好在很多地方使用物镜C中的nil.
归档时间: |
|
查看次数: |
90660 次 |
最近记录: |