Obj C - 从类对象

时间:2015-12-17 14:22:50

标签: ios objective-c arrays nsarray

我有一个自定义对象类,可以说有一些属性。

@property (nonatomic,retain) NSString *Name;
@property (nonatomic,retain) NSString *ImgURL;
@property (nonatomic,retain) NSArray  *Messages;

然后我经历一个循环并填充数据并将每个实例添加到这样的数组

for(NSDictionary *eachEntry in details)
{
    ClientData *client;
    client.Name = [eachEntry objectForKey:@"name" ];
    client.ImgURL = [eachEntry objectForKey:@"img"];
    client.Messages = [eachEntry objectForKey:@"message" ];

    [_Data addObject:client];  
}

现在在一个表中我想在列表中显示一些这样的数据,如何通过名称而不是键或索引来访问每个属性。

所以目前我在我的cellForRowAtIndexPath

中有这个
 NSString *name = [[self.Data objectAtIndex:indexPath.row]  objectForKey:@"name"];

显然这不起作用,因为我没有设置密钥

我不想这样做

NSString *name = [[self.Data objectAtIndex:indexPath.row]  objectAtIndex:1];

如何访问Client.Name等

2 个答案:

答案 0 :(得分:1)

Key Value Coding (KVC)。将objectForKey替换为valueForKey

答案 1 :(得分:1)

self.Data是ClientData对象的数组,因此您可以这样做:

NSString *Name = ((ClientData *)[self.Data objectAtIndex:indexPath.row]).Name;

或:

ClientData *clientData = self.Data[indexPath.row];
NSString *name = clientData.Name;