2016-06-30 12 views
1

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

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

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

    // MARK: NSMutableCopying ?? 

} 

回答

0

在Objc,我使用:

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

但是在斯威夫特这种方法不可用。

所以我实现这样的:

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

我不知道是否正确与否,但我想不出更好的办法。

持续关注..