通过NSDictionary循环并添加到NSMutableArray
我将如何循环以下NSDictionary
?通过NSDictionary循环并添加到NSMutableArray
2011-10-27 11:40:23.775 Discounts[305:f803] {
NewDataSet = {
Discounts = (
{
BIN = {
text = "\n 900020";
};
DiscountId = {
text = "\n \n d06dab1b-a2a3-464e-a522-00185fcf5e7c";
};
DiscountPrice = {
text = "\n 75%";
};
GRP = {
text = "\n 8013230";
};
PCN = {
text = "\n CLAIMNE";
};
Title = {
text = "\n duralclon";
};
UID = {
text = "\n 100000";
};
text = "\n ";
},
{
BIN = {
text = "\n 900020";
};
DiscountId = {
text = "\n \n 159d9ba9-462c-47a2-a23e-002137c6fd2e";
};
DiscountPrice = {
text = "\n 75%";
};
GRP = {
text = "\n 8013230";
};
PCN = {
text = "\n CLAIMNE";
};
Title = {
text = "\n allermax";
};
UID = {
text = "\n 100001";
};
text = "\n ";
},
...
我已经试过:
for (id key in discountsDict) {
MyObject *obj = [[MyObject alloc] init];
obj.Title = (NSString *)[key objectForKey:@"Title"]; // *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFString 0x6ca2eb0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key Title.'
[self.discounts addObject:obj];
[obj release];
}
不太清楚我是否意味着要创建通过一个NSArray
与内容,然后循环,以增加MyObject
我self.discounts
的NSMutableArray
。
在此先感谢。
您在询问key
为objectForKey:@"Title"
,但key
只是一个NSString*
。你真正的意思是[[discountsDict objectForKey:key] objectForKey:@"Title"]
。或者,如果你支持4.0及更高版本,可以使用
[discountsDict enumerateKeysAndObjectsUsingBlock:^(id key, id val, BOOL *stop){
MyObject *obj = [[MyObject alloc] init];
obj.Title = [val objectForKey:@"Title"];
[self.discounts addObject:obj];
[obj release];
}];
我的目标框架是4.0,我在Xcode 4.2上,我得到以下警告:'//实例方法enumerateObjectsAndKeysUsingBlock找不到' – fuzz
此外:'NSString * title =(NSString *)[[discountsDict objectForKey:key] objectForKey: @“标题”];'也没有工作。它为'Title'返回'nil'。 – fuzz
修正了,它实际上是:'enumerateKeysAndObjectsUsingBlock'而不是'enumerateObjectsAndKeysUsingBlock'。警告停止,但仍有'Title'返回'null'。 – fuzz
你会得到什么错误? – Dani
@Danie:将错误添加为引发错误的行旁边的注释。 – fuzz
你可以转储字典在目标c风格,'NSLog(@“%@”,discountsDict)'并发布它? – Dani