【发布时间】:2014-09-11 23:31:34
【问题描述】:
我的类中有一个对象实例的属性
@property(nonatomic, strong) MyObject *myObject;
我公开了一个辅助属性。
@property(nonatomic, assign, readonly) BOOL hasMyObject
哪个
return self.myObject != nil;
我需要 hasMyObject 符合 KVO(我正在使用 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 只能在类内设置。
【问题讨论】:
标签: objective-c key-value-observing reactive-cocoa