在我的情况下,这是由于一个保留周期在我的一个InterfaceController
。
如果您收到类似日志:
[default] -[SPRemoteInterface _interfaceControllerClientIDForControllerID:]:0000: ComF: clientIdentifier for interfaceControllerID:XXXXXXXX not found
& /或...
[default] _SendRecordedValues:000: ComF:<-Plugin controller ID XXXXXXXX has no client identifier
首先,找出哪些InterfaceController
具有控制器ID XXXXXXXX
。
有这awake(withContext:)
override func awake(withContext context: Any?) {
//...
if let id = self.value(forKey: "_viewControllerID") as? NSString {
let strClassDescription = String(describing: self)
print("\(strClassDescription) has the Interface Controller ID \(id)")
}
//...
}
此日志:一旦你确定了InterfaceController
造成这些日志
[Target.Classname: 0xYYYYYYYY] has the Interface Controller ID XXXXXXXX
,您可以继续调试。
你的情况可能有所不同,但在我的情况下,我在self
创建了一个保留周期,其中一个关闭期间需要一段时间才能找到,但我最终以[weak self]
捕获打破了保留周期。
基本上,当InterfaceController
试图执行某些代码但已被释放时,会显示错误日志。
我已经有了:
DispatchQueue.main.async {
self.doSomethingThatDoesSomethingAsync()
}
我定:
DispatchQueue.main.async { [weak self] in
self?.doSomethingThatDoesSomethingAsync()
}
模块领域是对所有interfacecontrollers空。当我点击它,然后按删除(但它是空的),然后按,它仍然不会自动填充? – user1007522
你有什么设置项目文件 - >观看应用程序目标 - >生成设置 - >界面生成器故事板编译器 - >默认模块?我相信应该和InterfaceController中的一样。 – tonik12
它填写了该组的名称,例如该组被称为X WatchKit应用程序,模块是X_WatchKit_App,但它是哪个?我需要检查别的东西吗? – user1007522