Obj C - 从 class 对象和数组访问自定义 class 属性
Obj C - Accessing custom class properties from and array of class objects
我有一个自定义对象 class 有一些属性可以说。
@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];
}
现在在 table 中,我想在列表中显示其中的一些数据,我怎样才能通过名称而不是键或索引访问每个 属性。
所以目前我的 cellForRowAtIndexPath 中有这个
NSString *name = [[self.Data objectAtIndex:indexPath.row] objectForKey:@"name"];
显然这不起作用,因为我还没有设置密钥
我不想这样做
NSString *name = [[self.Data objectAtIndex:indexPath.row] objectAtIndex:1];
我如何访问 Client.Name 等
Key Value Coding (KVC)。将 objectForKey
替换为 valueForKey
.
self.Data 是一个 ClientData 对象数组,所以你可以这样做:
NSString *Name = ((ClientData *)[self.Data objectAtIndex:indexPath.row]).Name;
或:
ClientData *clientData = self.Data[indexPath.row];
NSString *name = clientData.Name;
我有一个自定义对象 class 有一些属性可以说。
@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];
}
现在在 table 中,我想在列表中显示其中的一些数据,我怎样才能通过名称而不是键或索引访问每个 属性。
所以目前我的 cellForRowAtIndexPath 中有这个
NSString *name = [[self.Data objectAtIndex:indexPath.row] objectForKey:@"name"];
显然这不起作用,因为我还没有设置密钥
我不想这样做
NSString *name = [[self.Data objectAtIndex:indexPath.row] objectAtIndex:1];
我如何访问 Client.Name 等
Key Value Coding (KVC)。将 objectForKey
替换为 valueForKey
.
self.Data 是一个 ClientData 对象数组,所以你可以这样做:
NSString *Name = ((ClientData *)[self.Data objectAtIndex:indexPath.row]).Name;
或:
ClientData *clientData = self.Data[indexPath.row];
NSString *name = clientData.Name;