在我的ViewController中,我创建了一些对象,我需要在控制器本身的各个地方使用,但是无处不在。我已经做了这样的:可以在iOS中创建类本地引用而不使用@property吗?
@implementation MyController1
NSString *myString;
- (void)myFirstMethod {
myString = @"hello world";
}
...
@end
我没有把他们的头文件中也没有我在接口声明中,将像这样与@property
定义他们:
@interface MyController1()
// could define myString with @property here
@end
我我没有任何问题与我的代码,但我想确保我没有违反安全的做法。我知道我可以将它们放在标题或实现文件中并使用@private
,但为了简化代码,我没有。这可以吗?不再需要使用@synthesize
对此有什么影响?
感谢,
它基本上是你的选择;看一眼; http://stackoverflow.com/questions/11478038/reason-to-use-ivars-vs-properties-in-objective-c是的,你失去了一些使用实例变量的东西,但如果你不需要KVC和东西,它很好。 –
对不起,垃圾邮件:但约定有实例变量前缀'_'所以'_myString'作为替代方案,您可以在MyController1上有一个私人类别,并声明一个“私人”属性 –
泵_制动器_前缀实例变量...当你声明一个属性时,setter和getters会自动为你合成,如'propertyName = _propertyName'。虽然编译器会让你声明以下划线开头的实例变量,但你只是乞求混淆和调试问题而非常乏味。 –