IOS NSDictionary 元素到 NSString

IOS NSDictionary element to NSString

您好,我正在尝试从 NSDictionary 中提取键值,字典值如下图所示

我需要使用代码

将键 "TITLE" 的值提取到 NSString
NSDictionary* tmp = [self getDBRequest:req];
NSString * title =[tmp valueForKey:@"TITLE"];

但给出的值类似于

上面的代码有什么问题吗?

编辑:

NSLog(@"%@", tmp);

给出输出

2015-12-31 11:04:52.530 SimpleTable[610:10059] (
        {
        DESCRIPTION = "30% OFF ON NEW ";
        "IMAGE_URL" = "crowd.jpg";
        TITLE = "GET 30% OFF";
    }
)

编辑2

实际上使用 NSString * title =[tmp valueForKey:@"TITLE"]; 的结果我必须替换 NSMutableArray

的一个元素

和代码

NSMutableArray *array = [[NSMutableArray alloc]init];
 [array addObject:@"Eezy"];
 [array addObject:@"Tutorials"];

 NSDictionary* tmp = [self getDBRequest:req];
 NSString * title =[tmp valueForKey:@"TITLE"];
[array replaceObjectAtIndex:0 withObject:title];

给我数组修改了一些东西,如下图所示

试试下面的代码。

NSDictionary *tmp = @{@"DESCRIPTION" : @"30 OFF ON NEW",@"IMAGE_URL" : @"crowd.jpg",@"TITLE" : @"GET 30% OFF"};
//NSDictionary* tmp = [self getDBRequest:req];
NSArray *keyArray = [tmp allKeys];
NSString * title = [keyArray objectAtIndex:[keyArray indexOfObject:@"TITLE"]];//[keyArray objectAtIndex:0];
[array replaceObjectAtIndex:0 withObject:title];

查看问题中的第一张图片,内容转储的第一行显示“1 个对象”。

同时查看 NSLog 的输出,注意圆括号 (( & )) 包围 大括号 ({ & }),它们依次包围 key/value 对。

这两个都告诉你 tmp 不是你想的那样引用 NSDictionary,而是包含单个元素的 NSArray 并且该元素是 NSDictionary .

现在,当您对字典数组调用 valueForKey: 时,它会对集合中的每个字典以及 returns 和结果数组进行键查找。

这就是为什么当您查看问题中的第二张图片时,您会发现其内容转储也以“1 个对象”开头 - title 引用的数组包含一个元素,即您的字符串。

这也是为什么,如评论中所述,使用 objectForKey: 代替 valueForKey: 会导致错误 - 该方法不对数组进行操作,因此会产生 unrecognized selector sent to instance 错误。

HTH