将Android应用程序移植到iphone应用程序总是给我以下我偶然创建的模式:
- (void) myFunc:(id)prop {
self.property = property;
}
应该是:
- (void) myFunc:(id)prop {
self.property = prop;
}
这总是导致我的程序悄然破坏,因为属性被重置为其现有值而不是被设置为新值'prop'。我无法将参数'prop'命名为'property',因为编译抱怨该参数掩盖了实例变量的可见性。
有没有一种避免这种情况的好方法?没有编译器警告。有没有办法让xcode阻止这个?我看不出很多情况你会将属性设置为其底层实例变量的值(可能触发KVO绑定?),但我认为在大多数情况下我都不会这样做。
我理解上面的代码是合成的,应该用@synthesize完成,但我只是用它作为一个简单的例子来说明我的观点。
答案 0 :(得分:0)
许多人选择使用前导下划线来命名他们的实例变量。这样您就可以为参数property
命名,而且您不太可能不小心输入下划线。
或者,您可以为参数命名newProperty
,这可能会使其与众不同,以至于难以混淆?