キーがディクショナリに存在しない場合に NSUndefinedKeyException をスローする代わりに、nil を返す NSMutableDictionary のサブクラスを実装しようとしています。
ただし、オブジェクトを辞書に追加しようとすると、
[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
NSMutableDictionary のすべてのメソッドをサブクラスに再度実装する必要がありますか、それともサブクラス化する必要がある他のクラスがありますか?
明確化: 私の最初の問題は、ドキュメントを正しく読めないことにありました。
NSMutableDictionary をサブクラス化する必要がある場合は、正しい答えを確認してください。キーが存在しないときに nil を返す辞書が必要な場合は、 NSMutableDictionary が既にそれを行っています。