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 次 |
| 最近记录: |