В моей библиотеке Swift EVCloudKitDao Я много делаю с отражением. Из-за этого я установил базовый класс своих объектов данных в NSObject. Теперь после обновления до Xcode 6.3 я получаю сообщение об ошибке для двух функций для получения хэша и описания объекта. Функция описания была приятной, но мне нужен хэш, чтобы мои объекты работали с Set.hash() и описание() не разрешено в Xcode 6.3 для NSObject
Вот код, который я имею
public class EVCloudKitDataObject : NSObject, NSCoding, Printable, Hashable, Equatable {
public func hash() -> Int {
return self.hashValue
}
public func description() -> String {
return EVReflection.description(self)
}
}
Ошибки, которые я получаю это:
/Users/evermeer/Desktop/dev/GitHub/EVCloudKitDao/AppMessage/AppMessage/CloudKit/EVCloudKitDataObject.swift:106:17: Method 'hash()' with Objective-C selector 'hash' conflicts with getter for 'hash' from superclass 'NSObject' with the same Objective-C selector
/Users/evermeer/Desktop/dev/GitHub/EVCloudKitDao/AppMessage/AppMessage/CloudKit/EVCloudKitDataObject.swift:86:17: Method 'description()' with Objective-C selector 'description' conflicts with getter for 'description' from superclass 'NSObject' with the same Objective-C selector
Кто-нибудь знает, как я могу решить эту проблему? Вы не можете использовать переопределение.
Что вы подразумеваете под «вы не можете использовать переопределение»? – Antonio
при использовании переопределения вы получаете ошибку: метод не переопределяет какой-либо метод из его суперкласса –
Дубликат [Проблема с соответствием протоколу Objective-C из подкласса Swift NSObject] (http://stackoverflow.com/questions/28718577/issue -with-matching-to-object-c-protocol-from-swift-nsobject-subclass)? –