Próbuję zaimplementować podklasę NSMutableDictionary, która zwraca zero zamiast rzucania wyjątku NSUndefinedKeyException, gdy klucz nie występuje w słowniku.Podklasy NSMutableDictionary
Jednak gdy próbuję dodać obiekty do mojego słownika mam
[NSMutableDictionary setObject:forKey:]: method only defined for abstract class
NilDictionary.h
@interface NilDictionary : NSMutableDictionary {
}
@end
NilDctionary.m
@implementation NilDictionary
- (id)valueForUndefinedKey:(NSString *)key {
return nil;
}
@end
Czy naprawdę muszę wdrożyć wszystko metody z NSMutableDictionary ponownie w mojej podklasy lub istnieje inna klasa I powinny być subclas śpiewać?
Wyjaśnienie: Mój pierwotny problem sprowadzał się do tego, że nie byłem w stanie prawidłowo odczytać dokumentacji.
Jeśli potrzebujesz podklasy NSMutableDictionary sprawdź poprawną odpowiedź. Jeśli chcesz słownik, który zwraca zero, gdy klucz nie jest obecny, NSMutableDictionary robi to już.
Co dokładnie robisz ze słownikiem, aby spowodować wyrzucenie 'NSUndefinedKeyException'? Próba dostępu do nieprawidłowego klucza w słowniku automatycznie zwraca 'nil'; jak otrzymujesz ten błąd? –