2

我对Objective C相当陌生,有些东西似乎有效但让我感到不安,就是这样。

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

    if(templateObject != nil )
    {

关键是在某些版本的 templateObjectId 对象中没有 GameUnitTemplate,它完全是另一个类,所以这是检查 GameUnitTemplate 是否存在的安全方法吗?

4

3 回答 3

5

它是安全的,假设templateObjectId是一个NSDictionary(或子类)。你只会nil回来。据记载

参数::aKey要为其返回相应值的键。

返回值:与 关联的值,如果没有与aKey关联的值,则返回 nil 。aKey

于 2013-05-14T13:01:46.927 回答
1

如果接收者不包含匹配的对象,它将返回nil. 这是完全安全的。您的实现应酌情测试 nil。

这当然假设接收者响应-objectForKey:(不要与 混淆-valueForKey:)。

于 2013-05-14T13:02:18.397 回答
0

如果templateObjectId是,NSDictionary那么这很好——你会得到nil结果。(如果不是,NSDictionary那么这可能是有问题的。)

于 2013-05-14T13:02:24.373 回答