1

私の質問は簡単です:NSMutableCopying私自身の Swift クラスのプロトコルに準拠する最良の方法は何ですか (おそらくコードの説明付き)?

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

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

    // MARK: NSMutableCopying ??

}
4

1 に答える 1

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
    }
}

正しいかどうかはわかりませんが、より良い方法は考えられません。

継続的な注意..

于 2016-07-01T02:23:01.340 に答える