我对Objective C很新,有些东西似乎有用,但让我感到不安,就是这样。
PFObject *templateObject = [templateObjectId objectForKey:@"GameUnitTemplate"];
if(templateObject != nil )
{
关键是在templateObjectId对象的某些版本中没有GameUnitTemplate,它是另一个类,所以这是检查GameUnitTemplate是否存在的安全方法吗?
答案 0 :(得分:5)
这是安全的,假设templateObjectId
是NSDictionary
(或子类)。你只会得到nil
。正如documented:
参数:aKey
:要返回相应值的键。
返回值:与aKey
,相关联的值,如果没有值与aKey
相关联,则为nil。
答案 1 :(得分:1)
如果接收器不包含匹配的对象,它将返回nil
。这是完全安全的。您的实现应该适当地测试为零。
这当然假设接收者回复-objectForKey:
(不要与-valueForKey:
混淆)。
答案 2 :(得分:0)
如果templateObjectId
是NSDictionary
,那么这很好 - 您只需获得nil
。 (如果它不是NSDictionary
那么这可能会有问题。)