0
KVO로 놀 때 다음 오류가 발생했습니다. UIViewController의 하위 클래스에서만 작동합니까?KVO가 작동하지 않습니다 : 메시지가 수신되었지만 처리되지 않았습니다.
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '<sort.object: 0x100a074e0>: An -observeValueForKeyPath:ofObject:change:context: message was received but not handled.
Key path: name
Observed object: <sort.User: 0x100a06bb0>
Change: {
kind = 1;
new = Test;
}
코드는 다음과 같다
import Foundation
class User: NSObject {
dynamic var name: String?
}
class object: NSObject {
func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutableRawPointer) {
print("Name changed")
}
}
var user = User()
var ob = object()
user.addObserver(ob, forKeyPath: "name", options: NSKeyValueObservingOptions.new, context: nil)
user.name = "Test"
try user.name = "Test 2"
user.removeObserver(ob, forKeyPath: "name")
작동합니다. 감사!! – lkahtz