关于swift解档的坑

2019-12-06  本文已影响0人  巨巨巨巨巨12138

iOS中储存的方式有很多种,SQL,CoreData,文件等等

其中归解档也是一种常见的持久化储存
swift归解有很多坑,这里总结一下

  1. 类名修改后解档会闪退
    归档时的对象名称和解档后不一致就会找不到,直接闪退
  2. target名称修改后解档会闪退
    原因是swift会以target名称创建命名空间,target改掉之后等于类名被改掉,同1

当项目有需要混淆且碰到归解档存储时,一定要避开模型和数据的混淆,以免发生上诉情况,
如已发生建议将target和模型数据名称改回去
或使用新Api来处理



@available(OSX 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *)
@nonobjc public static func unarchivedObject<DecodedObjectType>(ofClass cls: DecodedObjectType.Type, from data: Data) throws -> DecodedObjectType? where DecodedObjectType : NSObject, DecodedObjectType : NSCoding

@available(OSX 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *)
@nonobjc public static func unarchivedObject(ofClasses classes: [AnyClass], from data: Data) throws -> Any?


当然归档本身也有很多的劣势

不要用归解档!
不要用归解档!
不要用归解档!

上一篇 下一篇

猜你喜欢

热点阅读