Если у вас есть свойство в вашем общедоступном интерфейсе, например, следующее
@interface MyClass : NSObject
@property(strong) NSString *myProp;
@end
И затем синтезируйте его, фактически синтезируя переменную:
@implementation MyClass
@synthesize myProp = _myProp; // or just leave it at the default name..
@end
Какова видимость переменной экземпляра _myProp
? То есть считается ли это @public
, @protected
или @private
? Я предполагаю, что, поскольку MySubClass
может наследовать от MyClass
, тогда он также получит свойства (естественно), но также ли он наследует видимость переменных экземпляра?
Какая разница, если я поместил свойство в расширение класса? Это скроет свойство из подклассов, и я угадаю также переменную экземпляра. Является ли это документированным где угодно?