是否可以跟踪对象的实例以检查它是否已分配并初始化或设置为nil?
我在.h文件中声明了对象,并尝试使用.m文件。
@interface ViewController : UIViewController
@property (nonatomic, strong) TestObject *testObj;
@end
然后我尝试了这个但是没有用。
- (void)viewDidLoad
{
[super viewDidLoad];
[self addObserver:self forKeyPath:@"testObj" options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
_testObj = [[TestObject alloc] init];
}
答案 0 :(得分:0)
试试这样:
- (void)viewDidLoad
{
[super viewDidLoad];
[self addObserver:self forKeyPath:NSStringFromSelector(@selector(testObj)) options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
_testObj = [[TestObject alloc] init];
}
然后观察:
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
if ([keyPath isEqualToString:NSStringFromSelector(@selector(testObj))]) {
//PERFORM YOUR OPERATIONS
}
}
答案 1 :(得分:0)
通过使用属性设置器来管理它。
所以,而不是:
_testObj = [[TestObject alloc] init];
我这样做了:
self.testObj = [[TestObject alloc] init];