如果你告诉一个客观的 c 对象 removeObservers: 对于一个关键路径并且那个关键路径没有被注册,它会破解悲伤。像 -
'无法从中删除关键路径“theKeyPath”的观察者,因为它没有注册为观察者。
有没有办法确定一个对象是否有一个注册的观察者,所以我可以这样做
if (object has observer){
remove observer
}
else{
go on my merry way
}
最佳答案
在您的 removeObserver 调用中 try catch
@try{
[someObject removeObserver:someObserver forKeyPath:somePath];
}@catch(id anException){
//do nothing, obviously it wasn't attached because an exception was thrown
}
关于objective-c - 如何判断对象是否附加了键值观察器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1582383/