1
У меня есть следующий общий класс, где я хочу, чтобы управлять струнный хэш:Невозможно присвоить результат этого выражения с дженериков
class NamedProfile<T> {
private var set = [String:T]()
private var profiles = [String]()
private let userDefaults = NSUserDefaults.standardUserDefaults()
private let profileName:String
var currentSet = ""
init(name:String, set:[String:T]) {
profileName = name
self.set = set
if let existingProfiles = userDefaults.objectForKey(name) as? [String] {
profiles = existingProfiles
}
for key in profiles {
if let existingProfile = userDefaults.objectForKey(profileNamed(name)) as? T {
set[key] = existingProfile // <-- error
}
}
}
private func profileNamed(name:String) -> String { return "\(profileName) \(name)" }
}
Почему компилятор хрип в приведенном выше задания?
Ах! Конечно. Одна из ловушек :-) Спасибо! –
Одна из причин, по которой я привык всегда использовать 'self.' – nhgrif
Я подумаю об этом. До сих пор было всего лишь несколько случаев, когда я попал в эту ловушку. –