有没有类似"applicationWillTerminate()"的功能,可以在Apple Watch上使用?

Is there a similar function to "applicationWillTerminate()", i can use on AppleWatch?

我需要在 Apple Watch 应用程序崩溃之前将数据保存在 NSUserDefaults 中。否则 iOS 应用程序会认为 Apple Watch 应用程序仍在 运行 并且无法正常工作。

我认为,您的根本目标是要确保包含的应用程序在其 Apple WatchKit 应用程序扩展程序崩溃时知道。

您可以通过让 Watchkit 扩展定期发送包含应用程序订阅的 Darwin 通知来实现此目的。然后,当包含的应用程序在某个超时限制内没有从扩展程序中收到消息时,它就知道 WatchKit 扩展程序崩溃了。这是我所知道的最轻量级的实现方式。

另一种方法是让 WatchKit 应用程序扩展定期调用:

+ (BOOL)openParentApplication:(NSDictionary *)userInfo
         reply:(void (^)(NSDictionary *replyInfo,
                         NSError *error))reply

它不是轻量级的,但优点是允许您提供一些字典数据,例如时间戳值或序列号。