objective-c - 子类化 NSDictionary 不起作用

标签 objective-c cocoa-touch ios nsdictionary

我有一本从 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/

相关文章:

ios - 无法在数组中插入对象,我想将其添加到用户默认值

iphone - 如何将 DetailViewController 的导航项上的后退按钮设置为 "Back"而不是上一个表格的标题?

ios - 解析 : One app on parse. com 将被多个 iOS 应用程序访问。它有效吗?

iphone - 使用 UICollectionViewFlowLayout 在 UICollectionView 的第一项上进行左填充

ios - 快速解析 UTF8 json 文件不能与 SwiftyJson 一起正常工作

objective-c - 检查 iOS 应用程序支持的架构

iOS用printf调试真机

iphone - 遍历 NSFetchRequest 结果时无错误地崩溃

ios - 如何将标签栏控件设置为针对不同的 Storyboard

ios - 在 NSString 中解码 Base-64 编码的 PNG