2013-05-14 34 views
2

我對Objective C相當陌生,有些東西似乎有效,但讓我感到不安,就是這樣。試圖爲不存在的鍵獲取對象是否安全?

PFObject *templateObject = [templateObjectId objectForKey:@"GameUnitTemplate"]; 

    if(templateObject != nil) 
    { 

問題的關鍵是在於,在templateObjectId的一些版本對象沒有GameUnitTemplate,它的另一個類乾脆,所以這是檢查GameUnitTemplate是否存在的一個安全的方法嗎?

+0

是的,它是安全的使用objectForKey – 2013-05-14 13:01:09

回答

5

這是安全的,假設templateObjectIdNSDictionary(或子類)。你只會得到nil回來。由於documented

參數aKey:返回相應值的鍵。

返回值:如果沒有值與aKey關聯與aKey或零相關聯的值。

1

如果接收者不包含匹配的對象,它將返回nil。這是完全安全的。你的實現應該適當地測試零。

這當然假定接收器響應-objectForKey:(不要與-valueForKey:混淆)。

0

如果templateObjectIdNSDictionary那麼這很好 - 你只需要得到nil。 (如果它不是NSDictionary那麼這可能是有問題的。)

相關問題