0
我有一個屬性設置爲一個對象實例在我的課志願於輔助屬性
@property(nonatomic, strong) MyObject *myObject;
我露出一個輔助屬性。
@property(nonatomic, assign, readonly) BOOL hasMyObject
這確實
return self.myObject != nil;
我需要hasMyObject是國際志願者組織兼容的(我用它RAC)。爲了解決這個問題,我現在打電話:
- (void)app_setMyObject:(MyObject*)myObject
{
[self willChangeValueForKey:@keypath(self.hasMyObject)];
self.myObject = myObject;
[self didChangeValueForKey:@keypath(self.hasMyObject)];
}
每次我設置myObject。
通過這種方式,觀察者可以知道hasMyObject
何時發生變化。
我的問題是:
1.這是好嗎
2.有沒有更好的方法來做到這一點?
爲什麼我會這樣做呢?
爲什麼不只是使用myObject
屬性?
這是一個API設計的東西。 myObject
屬性是內部屬性,不應公開公開,myObject
僅在類中設置。
感謝您指出ClassName.new永遠不會被評估。 – Karmeye 2014-09-12 13:36:38