使用较差的命名标准迁移到Arc

sea*_*hea 6 iphone objective-c ios automatic-ref-counting

我正在处理一个常规忽略命名标准的代码库.因此,即使方法名称不符合NARC,某些类中的方法也会返回引用计数为1的对象.很棒的东西.

我想将项目转换为使用自动引用计数,但由于NARC命名标准被完全忽略,我有点紧张.有谁知道ARC是否依赖NARC命名标准才能正常工作?

谢谢,

肖恩

Rob*_*ier 8

ARC确实依赖命名约定来正常工作.然而...

如果您只使用ObjC对象,那么只要您只有 ARC代码,它通常就会"解决" .例如,如果你有一个像这样的方法:

- (id)something {
  return [[Something alloc] init];
}
Run Code Online (Sandbox Code Playgroud)

这是错误的(在非ARC代码中),但ARC将通过有效添加额外的东西来平衡它autorelease.事实上,以上是正确的 ARC代码,所以没关系.

我的建议,如果这几乎是所有ObjC代码,是自动转换为ARC然后运行静态分析器.这个问题实际上可能比你担心的要小得多,如果它的代码恰好恰好有错误的命名.

如果这是Core Foundation免费的免费桥接代码,事情就会复杂一些.然后我建议先运行静态分析器,然后在转换前正确命名.幸运的是,命名约定是静态分析器非常擅长的.