加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

定义在Swift中被视为类的结构

发布时间:2020-12-14 05:29:58 所属栏目:百科 来源:网络整理
导读:在 Swift中,String结构也被视为类对象,就像使用NSCoder encodeObject(_:forKey :)方法一样.我知道String直接与objective-c类NSString桥接,但有没有办法制作一个行为相似的自定义结构?也许将它连接到一个自定义类?我希望能够做到这样的事情: struct Sorte
在 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桥接.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读