有人可以指向特定的「id類型文檔」嗎?我已經通過了動態打字文檔,但我想知道如何使用類型ID。具體如何檢查id是否爲空。id動態類型文檔
id動態類型文檔
回答
id
類型與Objective-C語言本身直接相關,而不是Cocoa/Cocoa Touch框架,因爲您的原始標記暗示了這一點。也沒有涉及動態打字。 Here's a little introduction in Apple's docs.
爲了回答您的具體問題,從上面的鏈接引用:
關鍵字
nil
被定義爲一個空的對象,id
與0
值。id
,nil
,Objective-C的其他基本類型在頭文件objc/objc.h
中定義。
nil
和NULL
是等價的(零指針),因此可以互換。
在基本的if語句,你只是這樣做:
id myId = [[something alloc] init];
// Short for if (myId == nil)
if (!myId) {
// myId is nil
} else {
// myId is not nil
}
很抱歉,如果我誤解了你的問題,但不會你只是這樣做:
// given
id sender;
if (sender == nil) {}
基本上你使用id
捕捉可能分配給它的任何對象。所以,你可以這樣做:
id name = [NSString stringWithString:@"john"];
,現在的名字將是NSString
對象,你可以通過調用[name class]
驗證。
查看this page的ID部分了解更多信息。
是這就是我的想法,但我得到的id對象設置爲[NSNull null]而不是空,「if(myIdVar)」檢查不起作用...這就是爲什麼我只是想確保它具體到我在做什麼。 –
請參閱The Objective-C Programming Language - 具體來說,關於對象,類和消息的章節。
在Objective-C中,對象標識符具有不同的數據類型:id。這種類型是任何類型對象的普通類型,不管類是什麼類型的,都可以用於類的實例和類對象本身。
關鍵字nil被定義爲一個空對象,一個值爲0的id,nil和其他基本類型的Objective-C在頭文件objc/objc.h中定義。
要按值比較變量,只需使用==運算符。因此,爲了測試零,你這樣做:
someVariable == nil
我從來沒見過它顯然在任何其他的答案說,所以我會在這裏說:
的id
被定義爲一個指向對象。
nil
爲零鑄造爲一個id - (ID)0 - 結果如下代碼:
NSString * myString = nil;
id idString = myString;
if (idString == nil) NSLog(@"idString == nil");
if (idString == NULL) NSLog(@"idString == NULL");
if (idString == (id)0) NSLog(@"idString == (id)0");
將具有以下輸出:
2011-09-12 07:25:57.297 Sample Project[22130:707] idString == nil
2011-09-12 07:25:57.298 Sample Project[22130:707] idString == NULL
2011-09-12 07:25:57.299 Sample Project[22130:707] idString == (id)0
- 1. 動態類型語言中的文檔
- 2. 文檔類型
- 3. 在Python中設置動態類型的文檔字符串3
- 4. 動態更改aspx頁面的文檔類型
- 5. scrollTo文檔類型
- 6. 移動文檔類型定義
- 7. 動態Sweave文檔
- 8. 動態Word文檔
- 9. 在RavenDB中,我可以檢索文檔類型的所有文檔ID
- 10. 靜態和動態類型
- 11. 靜態與動態類型
- 12. 獲取動態類型的類類型?
- 13. ActionScript動態類型?
- 14. 動態類型ViewPage
- 15. 我可以使用String作爲mongodb文檔的ID類型嗎?
- 16. int []類型和文檔
- 17. W3C文檔類型錯誤?
- 18. 框架集文檔類型
- 19. WinRT投影類型文檔
- 20. 查詢基類型文檔
- 21. IE8文檔類型改變
- 22. scrollTop的和文檔類型
- 23. 文檔類型改變
- 24. XML文檔類型定義
- 25. Lotus Notes文檔類型
- 26. 從各種文檔類型
- 27. 文檔類型和CSS
- 28. Schema.org類型的文檔?
- 29. 文檔類型,HTML 5
- 30. 文檔類型在哪裏?
'id'就像*在路徑通配符中。它通常與類別結合使用來定義委託類型,例如:id –
ZhangChn
單身對象NSNull,對象何時使用?謝謝。 –
直接從Apple獲得它:「NSNull類定義了一個單獨的對象,用於在nil被禁止作爲值的情況下表示空值(通常在像數組或字典這樣的集合對象中)。」 –