类 之间的 WatchKit 线程问题
WatchKit thread issue between classes
我有两个 类,名为 InterfaceController
和 LoadInterfaceController
。
我正在从我的 LoadInterfaceController
:
呼叫 InterfaceController
的 uiChange
function
InterfaceController *interfaceController = [InterfaceController alloc];
//[interfaceController performSelectorOnMainThread:@selector(uiChange) withObject:nil waitUntilDone:true];
[interfaceController uiChange];
调用了function
,但InterfaceController
中的UI没有被修改。
- (void)uiChange {
NSLog(@"uiChange was called");
//... make changes to the UI ...
}
如果 function
是从 function
调用的,该 function
源自 InterfaceController
class
,则 UI 将分别更改。
我尝试在 main thread
上调用 uiChange
(如 here 所述),但 UI 没有响应。我如何指定用于 InterfaceController
的 UI 的线程?
与 相同的问题。不要自己初始化控制器,让 Watch 在用户流发生时进行初始化。
我建议在您的架构中添加一个 Pub/Sub 模式。 NSNotificationCenter
class 是一个很好的例子。它允许应用程序的各个部分相互通信,它也经常用于控制器通信。
AppDelegate 和控制器之间通信的一个很好的例子,我最近提供了对另一个问题的回答。但如果你真的需要,我可以采用它作为你的例子。
我有两个 类,名为 InterfaceController
和 LoadInterfaceController
。
我正在从我的 LoadInterfaceController
:
InterfaceController
的 uiChange
function
InterfaceController *interfaceController = [InterfaceController alloc];
//[interfaceController performSelectorOnMainThread:@selector(uiChange) withObject:nil waitUntilDone:true];
[interfaceController uiChange];
调用了function
,但InterfaceController
中的UI没有被修改。
- (void)uiChange {
NSLog(@"uiChange was called");
//... make changes to the UI ...
}
如果 function
是从 function
调用的,该 function
源自 InterfaceController
class
,则 UI 将分别更改。
我尝试在 main thread
上调用 uiChange
(如 here 所述),但 UI 没有响应。我如何指定用于 InterfaceController
的 UI 的线程?
与
我建议在您的架构中添加一个 Pub/Sub 模式。 NSNotificationCenter
class 是一个很好的例子。它允许应用程序的各个部分相互通信,它也经常用于控制器通信。