我最近在使用 XCode 4.2 和 Apple LLVM 编译器 3.0 / LLVM-GCC 处理我公司的 iOS 项目时处理了几个问题。
下面是代码
A.h
@interface A{
int _count;
};
@property(nonatomic,assign) count;
@end
A.mm
@implementation A
@synthesize count = _cont;//note a typo here !!!
//... I use _count in below code
@end
错字不会产生编译错误或警告,编译器或运行时(实际上我不确定是谁做的,我最好的猜测应该是编译器)将为我们生成一个 _cont 实例 ivar。
此功能非常适合封装。我们的头文件可能会更干净。然而,这样的错字很难注意到。所以我想知道是否有任何设置可以为这种情况生成警告?我搜索 Clang 的官方网站没有任何发现。
有人会建议我根本不要在类接口中声明实例并始终使用 self.count。首先我不喜欢这种代码风格,其次在某些情况下,您的“setCount”方法可能会做的不仅仅是更改实例值,最后我们在引入此功能之前就开始了我们的产品。我不想改变现有代码的风格。
这里有人遇到同样的问题吗?有什么好的想法和最佳实践吗?