我无法理解 Objective-C 中私有实例变量的概念:
假设我有一堂课:
@interface Dog : NSObject
和两个声明的选择器
- (void)setSomeString:(NSString *)_someString;
- (NSString *)someString;
在 Dog.m 实现文件中,我声明了一个私有实例变量:
@interface Dog()
{
NSString *someString;
}
在程序的 main 方法中,我创建了一个新的 dog 对象:
Dog *myDog = [[Dog alloc] init];
为什么可以在 main 方法之外做这样的事情?
myDog.someString = @"Yoda";
我希望 someString 变量是私有的,并且只能由其设置器访问
[myDog setSomeString:@"Yoda"];