我試過了,我已經成功地將一個塊分配給了一個變量和id變量。塊是一個obj-c對象嗎?爲什麼我們使用NULL而不是零? (如果它是一個對象)Objective-C對象和塊
0
A
回答
2
塊可以用作Objective-C上下文中的對象(也就是說,用GCC或LLVM編譯的純C或C++程序也可以使用塊,但它們不能作爲對象,因爲這兩種語言都不理解以有意義的方式的Objective-C)。
一般來說,你應該使用nil
的對象,Nil
爲Class
ES和NULL
其他指針。我不知道你在用NULL
而不是nil
來代替nil
,但是這不是我在Objective-C上下文中所做的事情(和以前一樣,在C或C++環境下,nil
和不可用沒有引入了Objective-C運行時頭文件,所以我會使用NULL
。)
2
C塊的一個很好的特性是它們可以表現得像基本的Obj-C對象一樣。你可以投一個塊到id
;你可以發送一個Block'Obj-C消息,比如'copy','retain','release','autorelease';你可以將一個塊填充到NSArray或NSDictionary中。但是,如果要執行該塊,則必須將其恢復爲原始類型。
NULL,nil,Nil和0只是零的不同單詞。選擇其中之一僅僅是您的程序員的文檔;它對編譯器有所不同。
按照慣例,NULL
代表空C指針,而nil
代表空Obj-C對象。由於塊是這兩種情況,你的同行程序員不會因爲選擇NULL或零來表示空塊而嘲笑你。你的編譯器肯定不會在意。
相關問題
- 1. 塊和對象
- 2. 選擇所有球員對象ObjectiveC
- 3. 我泄漏這個ObjectiveC對象嗎?
- 4. 在objectiveC(SBJSON)對象和數組中解析JSON
- 5. ObjectiveC分配和init?
- 6. Python的AppKit和ObjectiveC代表
- 7. ObjectiveC和substringToIndex。問題點
- 8. 優點和iOS中/的ObjectiveC
- 9. ObjectiveC中指定對象的內存使用情況
- 10. ObjectiveC - 通過分佈式對象顯示窗口
- 11. 對象鑄造/的ObjectiveC從斯威夫特
- 12. NumberFormatter - ObjectiveC
- 13. 塊和傳遞對象作爲參數
- 14. Python - 下載CSV模塊和line_num對象
- 15. 的Javascript模塊模式和空對象
- 16. 同步塊和監視對象
- 17. Python模塊和對象名衝突
- 18. #with(對象)塊招
- 19. 創建對象塊
- 20. 「對象」 和 「對象*」
- 21. 針對ObjectiveC的Twitter API1.1和OAuth的任何解決方案?
- 22. 寫在塊和在流對象中的塊接收c#
- 23. Swift:import ObjectiveC vs Foundation
- 24. ObjectiveC中的MulticastDelegate
- 25. 中的ObjectiveC
- 26. 在的ObjectiveC
- 27. 在的ObjectiveC
- 28. JSON ObjectiveC - 錯誤
- 29. Curl,Asana&ObjectiveC
- 30. 在的ObjectiveC
我在每個示例或示例代碼中都看到NULL。 –
如?我自己總是使用'nil'。 – jrtc27
NULL,零,0 - 在Objective-C中所有相同的東西。 – rmaddy