Cocoa類中有接受指針地址的方法。最常見的論點是CoreData驗證方法中的未來NSError *
對象的地址(等等)。通過這種方式,可以將自定義或擁有的對象放置在給定參數指向的地址的位置。默認情況下,Objective C方法中參數的指針是否爲const?
我的問題是:爲什麼我們不能用簡單的指針參數來做到這一點?例如。比方說,我有一個方法:
- (void)addObject:(id)someObject toArray:(NSMutableArray *)array;
我可以很容易地通過可變數組作爲第二個參數,調用它addObject:
和方法後調用數組將被修改。爲什麼這不與NSError *
對象完成?傳遞給方法的指針默認定義爲const?這是爲了避免訪問NULL
?
NULL保護內置到Objective-C中不少,它很好。我喜歡在數組爲空或空的情況下知道[數組數] == 0。在這一點上,Ruby和許多其他語言爆炸了,在很多情況下你需要額外的代碼來處理null。 –
@TomAndersen通過'nil'和消息'nil'是有區別的。 '[nil addObject:blah]'沒有效果。 '[array addObject:nil]'會炸燬你的臉。 –