问题描述
我的代码有一个小问题。当我从CoreData加载数据时,我的控制台会收到警告,但我不知道为什么。我不是专业程序员,而且Google也无法真正帮助我,所以现在我在这里。
我这样加载数据:
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
var data: [DataToLoad] = []
override func viewDidLoad(){
do{
data = try context.fetch(DataToLoad.fetchRequest())
}catch{
print("error")
}}
但是当我像控制台那样加载它时...
“ 2020-09-05 20:32:04.884728 + 0200 Test-Application [3850:348569] [常规]“ NSKeyedUnarchiveFromData”不应用于取消存档,并将在以后的版本中删除” >
...启动应用后。
所以我的意思是一切都很好,但是出现此错误的地方是我的错误。 我希望你能帮助我。
对不起,我英语不好,希望您能理解一切。
祝您有美好的一天。
解决方法
该应用程序仍在运行,因为它是警告而不是错误,但是最好不要忽略警告。
对于您而言,发生警告是因为from charm4py import charm
from tqdm import tqdm
futures = charm.pool.map_async(func,iterable,multi_future=True)
pBar = tqdm(total=len(futures))
for future in charm.iwait(futures):
# Do something with future.get()
pBar.update()
已过时。这意味着它已经过时,将来会被替换,然后该应用可能会停止运行。
Kaira Diagne解释:
在iOS 12上,Apple已开始在整个平台上采用
NSKeyedUnarchiveFromData
。对于核心数据,这意味着默认的NSSecureCoding
(使用ValueTransformer
将自定义数据类型转换为可以存储在持久性存储中的格式)有时也会改变。
在您的情况下,NSCoding
而不是核心数据中的NSSecureUnarchiveFromData
。
这意味着我们要做的第一件事是确保数据模型中每个可转换属性的数据类型符合安全编码。
(链接:NSSecureCoding and transformable properties in Core Data,2020年)
为了使您的应用程序将来也能正常运行,您将不得不更深入地研究代码,并查看在哪里使用不赞成使用的方法和类并替换它们。