Ben*_*Ben 12 iphone objective-c subclassing nsmutabledictionary ios
我试图实现一个NSMutableDictionary的子类,它返回nil而不是在字典中不存在键时抛出NSUndefinedKeyException.
但是,当我尝试将对象添加到我的字典中时,我得到了
[NSMutableDictionary setObject:forKey:]: method only defined for abstract class
Run Code Online (Sandbox Code Playgroud)
NilDictionary.h
@interface NilDictionary : NSMutableDictionary {
}
@end
Run Code Online (Sandbox Code Playgroud)
NilDctionary.m
@implementation NilDictionary
- (id)valueForUndefinedKey:(NSString *)key {
return nil;
}
@end
Run Code Online (Sandbox Code Playgroud)
我是否真的必须在我的子类中再次实现NSMutableDictionary中的所有方法,或者是否有其他类我应该进行子类化?
澄清:我原来的问题归结为我无法正确阅读文档.
如果你需要子类NSMutableDictionary,请检查正确的答案.如果你想要一个在你的密钥不存在时返回nil的字典,NSMutableDictionary已经这样做了.
Emp*_*ack 25
在子类中,您必须覆盖它们的两个基本方法:
1. setObject:forKey:
2.removeObjectForKey:
您还必须覆盖NSDictionary该类的基本方法.
如果确实需要子类NSDictionary,则需要考虑由a表示的Class cluster- 因此,这些方法在概念上基于几种原始方法:
1. count
2. objectForKey:
3.keyEnumerator
4. initWithObjects:forKeys:count:
在子类中,您必须覆盖所有这些方法.
NSDictionary’s其他方法通过调用这些原语中的一个或多个来操作.非原始方法提供了一次访问多个条目的便捷方式.
您似乎需要覆盖所有这六种方法,以使您的NSMutableDictionary子类完美运行.
| 归档时间: |
|
| 查看次数: |
9743 次 |
| 最近记录: |