Objective-C中的NULL與nil在observeValueForKeyPath:ofObject:change:context:- 為什么文檔使用NULL而不是nil在不指定上下文指針時?
3 回答

慕桂英546537
TA貢獻1848條經驗 獲得超10個贊
nil
應該只用來代替一個id
,我們Java和C ++程序員會認為它是一個指向對象的指針。使用NULL
非對象指針。
看一下該方法的聲明:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
Context是一個void *
(即一個C風格的指針),所以你肯定使用NULL
(有時被聲明為(void *)0
)而不是nil
(類型id
)。

holdtom
TA貢獻1805條經驗 獲得超10個贊
它們在技術上是相同的,僅在風格上有所不同:
Objective-C樣式表示
nil
用于id
類型(和指向對象的指針)。C風格說這
NULL
就是你用的void *
。C ++風格通常表示您應該使用
0
。
我通常使用與聲明類型的語言匹配的變體。
- 3 回答
- 0 關注
- 590 瀏覽
添加回答
舉報
0/150
提交
取消