Я работаю над преобразованием swift 2.3 в swift 3.0;Swift 2.3 to Swift 3.0 получить неоднозначную ошибку ссылки на членство '
Swift 2,3 Код:
extension ContextDidSaveNotification: CustomDebugStringConvertible {
public var debugDescription: String {
var components = [notification.name]
components.append(managedObjectContext.description)
for (name, set) in [("inserted", insertedObjects), ("updated", updatedObjects), ("deleted", deletedObjects)] {
let all = set.map { $0.objectID.description }.joinWithSeparator(", ")
components.append("\(name): {\(all)}")
}
return components.joinWithSeparator(" ")
}
}
Swift 3,0 Код:
extension ContextDidSaveNotification: CustomDebugStringConvertible {
public var debugDescription: String {
var components = [notification.name]
components.append(Notification.Name(rawValue: managedObjectContext.description))
for (name, set) in [("inserted", insertedObjects), ("updated", updatedObjects), ("deleted", deletedObjects)] {
let all = set.map { $0.objectID.description }.joined(separator: ", ")
components.append(Notification.Name(rawValue: "\(name): {\(all)}"))
}
return components.joined(separator: " ")
}
}
Но я получил сообщение об ошибке: Неоднозначность ссылка на memeber 'присоединился()' для LĀSE возвращения в коде Swift 3.0.
Как решить эту проблему? Я много исследовал, но не нашел рабочего решения.
Благодаря
Попробуйте явно объявить тип инициализации var компонентов. –
'Notification.Name' - это структура в Swift 3, а не строка - это не то, что' join() 'ожидает – vadian