1
假設您的父類是例如MyClass.m
訪問您無法修改的父類擴展中定義的Obj-C屬性
@interface MyClass()
@property (nonatomic, readwrite, retain) NSString * str;
@end
你從這個類繼承和要修改的str
值,纔有可能不接觸MyClass.m
或MyClass.h
?
謝謝。
假設您的父類是例如MyClass.m
訪問您無法修改的父類擴展中定義的Obj-C屬性
@interface MyClass()
@property (nonatomic, readwrite, retain) NSString * str;
@end
你從這個類繼承和要修改的str
值,纔有可能不接觸MyClass.m
或MyClass.h
?
謝謝。
是的,你可以只使用KVC:
[anObject setValue:@"foo" forKey:@"str"];
NSString* x =[anObject valueForKey:@"str"];
但不這樣做。該屬性對*.h
中的公共界面隱藏,因爲父類的開發人員想隱藏它。
最終,父類的開發人員可能會停止使用該屬性。那麼你使用這個屬性的代碼會崩潰。
所以,不要這樣做。
'你可以自己檢查一下!' – Hemang