局部变量,优化和ARC

时间:2012-02-29 13:44:52

标签: objective-c cocoa-touch cocoa automatic-ref-counting

鉴于NSArray *tagsArrayNSMutableDictionary *cache不为空。

此:

for (Tag *tag in tagsArray) {
    NSString *name = tag.name;
    [cache setObject:tag forKey:name];
}

不应该慢于此:

for (Tag *tag in tagsArray) {
    [cache setObject:tag forKey:tag.name];
}

__strong var'name'不会使用ARC的隐式保留/释放?编译器实际上会从第一个生成第二个?

2 个答案:

答案 0 :(得分:1)

是的,它与ARC相同,因为在第一个示例中没有其他代码与“name”变量交互。

为了将来,请尝试了解ARC修改代码以获得更好的性能和优化,而不是相反。

这是ARC的整个文档的链接 - 必须知道 - http://clang.llvm.org/docs/AutomaticReferenceCounting.html

答案 1 :(得分:0)

如果ChildClass objecA,objecB ....有一个实例变量,而ParentClass尝试分配ChildClass的实例变量(它是ParentClass和强指针的实例变量),

然后ChildClass'对象就像是同一个对象。虽然不一样。绝对不一样。