问题标签 [widgetkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - iOS 14 小部件可用内存
在互联网上搜索我发现在旧版本的小部件中存在以下内存限制:
适当地响应用户交互。表现良好(特别是,iOS 小部件必须明智地使用内存,否则系统可能会终止它们)。” 小部件的内存限制为 16 MB,因此请保持简单,并确保测试您的小部件是否存在内存泄漏
我想了解iOS 14
可能使用的内存的新版本是否相同或已更改。
我在文档中找不到任何内容。
我想在 中编写一个小部件Swift ui
,但首先我想了解是否有任何限制。
谁能给我一些澄清?
swift - 在 iOS 14 的 SwiftUI 中,在主 App 和 Widget 之间共享数据
如何从我的主应用程序获取数据到小部件?
swift - 从 CoreData for iOS 14 小部件中获取数据
我想在小部件中显示从 Core Data 获取的数据。但@FetchRequest
不适用于小部件。
据我了解,我们必须创建一个应用程序组并制作一个共享的持久容器。
我想知道的是如何从该共享持久容器中读取(获取)小部件上的数据,或者简单地说,如何在小部件中显示从核心数据获取的数据。
ios - 在 iOS 14 小部件中显示来自 Core Data 的数据的合理方式是什么?
我有一个使用 Core Data + CloudKit 堆栈的应用程序。(核心数据在设备之间同步。)。现在我想在 iOS 14 小部件中显示来自 Core Data 的数据(在 WidgetKit 目标中查看)。
我的目标是让小部件中的数据也是来自核心数据的实际数据:即——用户在设备 A 上更改了记录,稍后在设备 B(带有小部件)上更改以小部件表示。
我该怎么做:
a) 为 main app target 和 widget target 添加 App Group 能力;并在小部件目标中获取核心数据。
b)在主应用程序目标中获取核心数据,保存到文件(plist?,JSON?),然后在小部件中使用该文件。
c) 在主应用程序目标中获取核心数据,从小部件目标中获取该数据。(可能吗?)
最合理的方法是什么?感谢您的任何建议。
swiftui - 如何让我的 SwiftUI 小部件每分钟更新一次?
我编写了一个应用程序,该应用程序有一个类,该类将从在线 JSON 中提取并解析它,然后返回一个字符串(当天的报价)。
我知道它可以正确提取数据,因为它是第一次工作。在小部件库中,它准确地显示了它应该做什么,以及它在主屏幕上的作用。
问题是当我重新启动手机时,它不会将所有数据重新加载到小部件中。
另一个问题是它不会在转到第二天的 5 分钟内刷新报价。(我检查了 API,我知道他们更改了它。我还认为我已将其设置为每分钟检查一次)。
我在此处附上了为您浏览 JSON 的代码:
现在这里是小部件代码。抱歉,我不知道问题出在哪里,所以我在这个问题上附加了很多代码。
感谢任何花时间看这个的人。
ios - 当 CloudKit 中的核心数据数据发生变化时,如何更新 WidgetKit 时间线条目?
我有一个将 Core Data 与 CloudKit 一起使用的应用程序。更改在设备之间同步。
主要目标具有选中“远程通知”的背景模式功能。主要目标和小部件目标都具有相同的应用程序组,并且都具有 iCloud 功能,服务设置为 CloudKit,并且容器中的相同容器已选中。
为了从小部件访问 Core Data 数据,我使用 CoreDataStack,如本答案所示。在 WidgetKit 文件中,我有一个执行获取请求并返回的函数Int
——来自该请求的行数。稍后我在小部件视图中显示该数字。
但是,如果 CloudKit 中的 Core Data 数据发生变化,例如在另一个设备上用户添加或删除记录,那Int
可能是不正确的。
当发生此类更改时,如何请求更新 WidgetKit 时间线条目?(如果数据在另一台设备或当前设备上发生更改。)谢谢。
swift - CloudKit中的Core Data发生变化时如何调用WidgetCenter.shared.reloadAllTimelines()?
我有一个将 Core Data 与 CloudKit 一起使用的应用程序。更改在设备之间同步。主要目标具有背景模式功能,已检查Remote notifications
,iCloud 功能已检查,服务设置为 CloudKit 并检查容器中的正确容器。
我如何在代码中对记录的更改、删除和添加做出反应?WidgetCenter.shared.reloadAllTimelines()
当 CloudKit 中的核心数据更改以更新 iOS 14 主屏幕小部件时,我需要调用。
我的目标是让它工作:我在 icloud.developer.apple.com 或其他设备上更改/添加/删除记录,并WidgetCenter.shared.reloadAllTimelines()
调用以在小部件中显示正确的数据。应用程序可能在后台或前台。
来自AppDelegate.swift
:
此外,在输出日志中注意到消息:
CoreData: debug: CoreData+CloudKit: -[NSCloudKitMirroringDelegate remoteStoreDidChange:]_block_invoke(2138): <NSCloudKitMirroringDelegate: 0x281818d00> - 忽略远程更改通知,因为出口商已经赶上了这个事务:64 / 64 - <NSSQLCore: 0x100b09440> (网址:file:///var/mobile/Containers/Data/Application/F83C68DA-7C36-42CC-926D-7C721C679579/Library/Application%20Support/AppTitle.sqlite)
swift - NSFetchRequest 返回错误的 .count 值
在我使用 SwiftUI 作为界面的应用程序中,我有一个执行操作的按钮:
当我删除应用程序中的行时,我使用moc.delete(book)
和try? moc.save()
. 我看到删除的行不见了,使用 icloud.developer.apple.com 上的界面。例如——如果我从 3 条记录中删除 1 条,我仍然得到 3 条countResult
而不是 2 条。感谢任何帮助。
swift - 如何刷新 Widget 数据?
我的代码获取两个JSON
变量并应在我的小部件上显示它们。小部件保持空白。如果没有小部件,它会向我显示我的应用程序中的所有内容。
我究竟做错了什么?代码中的 API 仅用于测试,因此您也可以检查。我需要更改什么以使其显示在小部件中吗?
我的结构:
获取 JSON:
显示小部件:
networkManager.test
应该显示为文本,但正如我所说,它是空白的。