鉴于NSArray *tagsArray
和NSMutableDictionary *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的隐式保留/释放?编译器实际上会从第一个生成第二个?
答案 0 :(得分:1)
是的,它与ARC相同,因为在第一个示例中没有其他代码与“name”变量交互。
为了将来,请尝试了解ARC修改代码以获得更好的性能和优化,而不是相反。
这是ARC的整个文档的链接 - 必须知道 - http://clang.llvm.org/docs/AutomaticReferenceCounting.html
答案 1 :(得分:0)
如果ChildClass objecA,objecB ....有一个实例变量,而ParentClass尝试分配ChildClass的实例变量(它是ParentClass和强指针的实例变量),
然后ChildClass'对象就像是同一个对象。虽然不一样。绝对不一样。