符合Swift中的NSMutableCopying?

时间:2016-06-30 21:48:09

标签: ios swift nscopying

我的问题很简单: 什么是在我自己的Swift类上符合NSMutableCopying协议的最佳方法(可能有一些代码解释)?

 class CustomClass: NSObject, NSMutableCopying {
    var string1: String
    var string2: String

    required override init() {
        self.string1 = "string1"
        self.string2 = "string2"
    }

    // MARK: NSMutableCopying ??

}

1 个答案:

答案 0 :(得分:0)

在Objc中,我使用:

+ (instancetype)allocWithZone:(struct _NSZone *)zone OBJC_SWIFT_UNAVAILABLE("use object initializers instead");

但是这个方法在Swift中不可用。

所以我这样实现:

class CustomClass: NSObject, NSMutableCopying {
    var string1: String
    var string2: String

    required override init() {
        self.string1 = "string1"
        self.string2 = "string2"
    }

    func mutableCopyWithZone(zone: NSZone) -> AnyObject {
        let customObject = CustomClass()
        customObject.string1 = string1
        customObject.string2 = string2
        return customObject
    }
}

我不确定是否正确,但我无法想出更好的方法。

持续关注..