2016-06-30 4 views
1

Мой вопрос прост: Каков наилучший способ соответствовать протоколу NSMutableCopying на моем собственном классе Swift (возможно, с некоторым пояснением кода)?Соответствует NSMutableCopying в Swift?

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"); 

но этот метод недоступен в 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 
    } 
} 

я не уверен, является ли право или нет, но я не могу думать о лучшем способе.

Непрерывное внимание ..