从对象数组中访问值

Per*_*eus 8 iphone cocoa cocoa-touch foundation ios

我有两个阵列,即

NMutableArray* first;
NMutableArray* second;
Run Code Online (Sandbox Code Playgroud)

现在我将第一个对象复制到第二个数组中

for (int i=0;i<first.count; i++)
{
 [second addObject:[first objectAtIndex:i];
}
Run Code Online (Sandbox Code Playgroud)

还行吧.我不知道如何访问First Array的值.我试过这样的,

[second addObject:[[first objectAtIndex:i]name]];
Run Code Online (Sandbox Code Playgroud)

我想获取第一个数组的第一个对象中的名称值.我尝试使用上面的一行,它显示了一些警告.请帮我

jle*_*ehr 7

假设你开始使用这样的数组:

NSArray *array1 = @[@{@name : @"Fred"},
                    @{@name : @"Bill"}];
Run Code Online (Sandbox Code Playgroud)

您可以创建第二个数组,其中包含第一个数组的每个元素的给定属性的值,如下所示:

NSArray *array2 = [array1 valueForKey:@"name"];
Run Code Online (Sandbox Code Playgroud)

如果你然后记录了第二个数组......

NSLog(@"%@", array2);
Run Code Online (Sandbox Code Playgroud)

......产生的结果将是

2012-04-18 16:26:11.226 ExampleRunner[23320:707] (
    Fred,
    Bill
)
Run Code Online (Sandbox Code Playgroud)

编辑

请注意,无论第一个数组中的对象是上面示例中NSDictionary显示的实例,还是具有name属性或实例变量的类(或_name实例变量)的实例,这都将起作用.有关其工作原理和原因的更多信息,请参阅NSKeyValueCoding非正式协议的文档:

http://developer.apple.com/library/ios/#DOCUMENTATION/Cocoa/Reference/Foundation/Protocols/NSKeyValueCoding_Protocol/Reference/Reference.html