我可以調用類變量 「ID」(例如的NSString * ID)? 一切似乎工作,但我不能讓[ID發佈在dealloc方法。我使用對象/鍵構造從XML解析器創建這個類的實例,所以我需要這個被稱爲ID。我已經試過[self.id發佈]和寄託都工作,除了分析顯示我一個警告說「屬性返回一個Objective-C的對象與+0保留計數」和「對象的引用計數錯誤減量那在這一點上不是由呼叫者擁有「。所以我想知道我是否在做非法的事情。非常感謝你。目標C IOS類變量叫做 「ID」
回答
id
在objective-c中是一個預定義的類型。你或許應該命名爲不同的東西,像idString
這是同樣的事情,試圖名稱,如if
id
變量int
或其他Objective-C的關鍵字是在Objective-C中的關鍵字。這是一個弱類型變量標識符,類似於JavaScript中的var
。
不要這樣做。
- 這是一個毫無意義的名字 - 的ID什麼?
- 它擦出了語言的關鍵字,並勢必會有一些不良影響的地方
- 它傷害可讀性,人們不得不懷疑你是指在任何點什麼代碼
是的,我知道。我試過這個,因爲我是通過xml解析器(從外部xml讀取的,我無法控制)用set ojbect/keys構造這個類的bulding istances。我有超過30個變量。我想我會在解析器中使用if([isEqualString:@「id」])來更改此特定屬性的名稱。謝謝。 – user1427835
實際上,變量名稱和類型定義(其'的id'是一個)(除非這已經在Xcode 4.3,這是我還沒有的數據改變)存在於在Objective-C單獨的名稱空間。我剛剛看到了一個關於這個的啓發性文章,但我現在找不到它。 – echristopherson
@echristopherson仍然離開點1和3 ... – jrturton
- 1. 變量爲所有類目標c
- 2. 目標C靜態類變量
- 3. 目標C類屬性變量
- 4. 目標C類別的實例變量
- 5. 目標c - 標籤變量
- 6. 全局變量目標C
- 7. 目標C「做 - 而」
- 8. printf類型id值在目標c中
- 9. VSTO Addin項目相關的變量和呼叫項目標識
- 10. c目標c中的全局變量
- 11. 將目標c變量傳遞給ios中的javascript
- 12. 變量iOS中的存儲完成處理程序(目標c)
- 13. IOS /目標C:添加另一個變量爲mutableArray
- 14. 目標C/iOS版 - 物業類型上
- 15. 目標C中的空變量
- 16. AVPlayerviewcontroller iOS目標C
- 17. 做一個標籤切換的佈局,目標C IOS
- 18. 更改目標中的Javascript變量-C
- 19. 目標C - 類別中的靜態變量
- 20. 從另一個類中檢索變量 - 目標C
- 21. 自變量]問題目標-C
- 22. 目標C重新分配變量
- 23. 目標C:方法和實例變量
- 24. 目標C:構件變量和數組
- 25. 目標-c中擴展的變量
- 26. iPhone:目標C全局變量
- 27. 目標C報價和變量
- 28. 訪問成員變量的目標C
- 29. 基本目標C變量聲明
- 30. 目標C中的全局變量
其實,在ARC ,默認情況下id是'__strong' :)也應該注意,你不能把任何東西放到'id'中,並期望它能夠工作。 –
弱類型與弱引用不一樣。這是一個弱類型。我希望我能有一個弱引用弱類型:'(__weak ID)' –
我這是有點開玩笑的。我只是說,你的答案可以使用一些澄清 –