我的构建成功完成。然后一段时间后会弹出这个错误:
"模糊地使用' addObjectsDidChangeNotificationObserver(handler :)'"
我不明白为什么会发生这种情况,因为addObjectsDidChangeNotificationObserver
方法只在项目中声明一次,而Xcode显示的第二次出现就是使用方法本身。
以下是显示错误的代码,以及哪些Xcode也将我显示为第一个候选人:
public init?(object: Managed, changeHandler: @escaping (ChangeType) -> ()) {
guard let moc = object.managedObjectContext else { return nil }
objectHasBeenDeleted = !type(of: object).defaultPredicate.evaluate(with: object)
token = moc.addObjectsDidChangeNotificationObserver(handler: {
[unowned self] note in
guard let changeType = self.changeType(of: object, in: note) else { return }
self.objectHasBeenDeleted = changeType == .delete
changeHandler(changeType)
})
}
以及addObjectsDidChangeNotificationObserver()
的实现,Xcode将我作为第二个候选人:
extension NSManagedObjectContext {
public func addObjectsDidChangeNotificationObserver(handler: @escaping (ObjectsDidChangeNotification) -> ()) -> NSObjectProtocol {
let nc = NotificationCenter.default
return nc.addObserver(forName: .NSManagedObjectContextObjectsDidChange, object: self, queue: nil) { note in
let wrappedNote = ObjectsDidChangeNotification(note: note)
handler(wrappedNote)
}
}
}
答案 0 :(得分:1)
好的,现在问题似乎已经解决了。
显然,我搞砸了访问修饰符,但很高兴知道类似的东西会导致模糊的错误