gpt4 book ai didi

objective-c - 从Objective-C应用程序访问WidgetCenter

转载 作者:行者123 更新时间:2023-12-03 16:55:40 31 4
gpt4 key购买 nike

我有一个现有的Objective-C应用程序,并为此开发了一个SwiftUI iOS 14小部件。到现在为止还挺好。现在,我正在尝试从我的Objective-C应用程序重新加载时间线。我了解没有用于访问WidgetCenter的Objective-C api,因此我已经实现了Apple文档中概述的桥接步骤(至少我想我是完全陌生的,因为我是Swift的新手)。我似乎无法在我的Objective-C应用程序中获得Widget Center或WidgetCenter.shared.reloadAllTimelines()。我尝试了许多方法都没有成功,所以我一定做错了。任何帮助或建议,将不胜感激。

最佳答案

我面临着同样的问题。解决方案是创建一个快速文件,例如:WidgetKitHelper。如果它不是自动生成的,也可以使用它创建分配的swift-objc header (桥接 header 文件),您可以手动添加它(搜索它)。
在帮助器对象中,您可以访问widgetkit,如果可以完成其余操作以查看objc代码中的swift代码,则可以将其用作包装器。
尖端:

    import WidgetKit

@available(iOS 14.0, *)
@objcMembers final class WidgetKitHelper: NSObject {

class func reloadAllWidgets(){

#if arch(arm64) || arch(i386) || arch(x86_64)
WidgetCenter.shared.reloadAllTimelines()
#endif

}
}
obj-c代码:
首先通过添加以下内容导入快速代码:
#import "YourProjectName-Swift.h"
然后,您可以使用:
    [WidgetKitHelper reloadAllWidgets];

关于objective-c - 从Objective-C应用程序访问WidgetCenter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63333725/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com