在
Swift中,String结构也被视为类对象,就像使用NSCoder encodeObject(_:forKey :)方法一样.我知道String直接与objective-c类NSString桥接,但有没有办法制作一个行为相似的自定义结构?也许将它连接到一个自定义类?我希望能够做到这样的事情:
struct SortedArray <Value: Comparable> {} // Would I need to create a bridge between // SortedArray and NSSortedArray? Can I even do that? class NSSortedArray <Value: Comparable> : NSObject,NSCoding { required init?(coder aDecoder: NSCoder) {} func encodeWithCoder(aCoder: NSCoder) {} } class MyClass : NSObject,NSCoding { private var objects: SortedArray<String> = SortedArray<String>() required init?(coder aDecoder: NSCoder) { guard let objects = aDecoder.decodeObjectForKey("objects") as? SortedArray<String> else { return nil } self.objects = objects } func encodeWithCoder(aCoder: NSCoder) { aCoder.encodeObject(objects,forKey: "objects") } }
目前这不可行.
SE-0058将解决这个问题,但是会从Swift 3推迟.期望SE-0058的最终实施不仅仅是处理ObjC桥接;例如,在更通用的解决方案中允许C或.NET桥接.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。