我有一本从 plist 中读取的字典。我想创建一个 NSDictionary
的子类来实现如下内容,这样我就可以避免在我的源代码中到处使用 @"key name"
:
@interface MyDict{
}
-(NSString*) textString;
@end
@implementation MyDict
-(NSString*) textString {
return [self objectForKey:@"textString"];
}
@end
在我的另一种方法中:
MyDict *d = ... // something i read from plist
NSString *str = [d textString];
当我调用该方法时,应用程序因“无法识别的选择器文本字符串”而崩溃。这里有什么问题?
最佳答案
只是将 NSDictionary 分配给 MyDict 指针并不能使它成为 MyDict 实例。
您可以执行此操作的一种方法是创建一个类别以将您的方法添加到 NSDictionary。参见 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocCategories.html#//apple_ref/doc/uid/TP30001163-CH20-SW1获取信息。
关于objective-c - 子类化 NSDictionary 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6025551/