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 關注
- 599 瀏覽
添加回答
舉報
0/150
提交
取消
