Swift ';NSKeyedUnachivefromData';不应用于联合国归档,并将在将来的版本中删除

Swift ';NSKeyedUnachivefromData';不应用于联合国归档,并将在将来的版本中删除,swift,nsarchiving,Swift,Nsarchiving,我在日志中收到一条消息说 “bundleNamePlaceholder”[8424:100146][general] “NSKeyedUnachiveFromData”不应用于取消存档和 将在将来的版本中删除 我不清楚这个消息,但我假设它可能与CoreData对象或其内容有关 有什么方法可以捕获抛出此消息的原因吗?苹果在某个时候从数据中删除了NSKeyedUnarchiveFromData,因为默认情况下它不安全。如果在coredata中使用NSKeyedUnarchiveFromData存储可

我在日志中收到一条消息说

“bundleNamePlaceholder”[8424:100146][general] “NSKeyedUnachiveFromData”不应用于取消存档和 将在将来的版本中删除

我不清楚这个消息,但我假设它可能与CoreData对象或其内容有关


有什么方法可以捕获抛出此消息的原因吗?

苹果在某个时候从数据中删除了
NSKeyedUnarchiveFromData
,因为默认情况下它不安全。如果在coredata中使用
NSKeyedUnarchiveFromData
存储可转换值,则该值将变得不可读


要找出导致这些日志消息的原因,请尝试为这些日志消息添加符号断点

+[NSKeyedUnarchiver unarchiveObjectWithData:]

+[NSKeyedUnarchiver unarchiveTopLevelObjectWithData:错误:
,和

+[NSKeyedUnarchiver unarchiveObjectWithFile::


这帮助我找到了罪魁祸首。

在我的案例中,问题在于使用
可转换的
在CoreData中键入以保存字符串数组。默认情况下,CoreData使用
NSKeyedUnarchiver
而不是
NSSecureUnarchiveFromData
转换器。所以更换变压器就解决了这个问题


在我的例子中,问题是因为我忘记在xcdatamodel中为transformable字段设置数据类型和值转换器。