访问数组成员

时间:2011-03-07 20:01:55

标签: iphone objective-c

for (int i=0; i<[data count]; i++) {
NSArray *item = [data objectAtIndex: i];
//NSString *index = item->id;
NSLog(@"%@", item);
}

输出结果为:

2011-03-07 20:48:46.949 hest[1796:207] {
    id = 1;
    src = "http://img0.gmodules.com/ig/images/igoogle_logo_sm.png";
}

但在做的时候:

NSString *index = item->id;

输出失败:

struct NSArray has no member named id

访问会员的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

您可以从记录对象的格式中了解它实际上不是NSArray。这是一个NSDictionary。如果你不熟悉这两个,这里有一个基本的想法:一个数组存储基于整数位置的对象。字典根据“密钥”存储内容。

要从字典中提取值,请使用它的“objectForKey:”方法:

id value = [item objectForKey:@"id"];

答案 1 :(得分:0)

您将从[data objectAtIndex: i]返回的项目分配给键入为NSArray的本地变量。您应该使用您希望数据数组包含的实际类型。

NSArray *item = [data objectAtIndex: i];

应该是

MyImageDataType *item = [data objectAtIndex: i];