如何从 Swift 中的 Today Extension 调用父 iPhone 应用程序中的方法?

How to call a method in the parent iPhone app from Today Extension in Swift?

我刚刚为我的 iPhone 应用程序创建了一个 Apple Watch 扩展,并使用以下方法更新了我的应用程序数据。

// Call the parent application which launches a method to update the app data
WatchViewController.openParentApplication([:],
    reply: { (reply, error) -> Void in
        self.updateGui() // update the gui when done
    })

A​​pple Today Extensions(小部件)是否有类似的东西?感觉把所有的client-server communication都重新实现了,给扩展感觉不对。

或者您建议如何更新我的数据(存储在整个 iPhone 应用、WatchKit 和 Today Extension 的应用组中)。

无需为容器应用及其扩展单独编写客户端-服务器通信代码。

Apple 推荐嵌入式框架。您创建了一个可跨两个目标使用的嵌入式框架。将容器应用程序和扩展程序都需要使用的代码放在框架中以避免代码重复。

为了在容器应用和扩展之间共享数据,您可以通过 AppGroup 使用 NSUserDefaults。

请检查Apple documentation