访问数组中对象的属性

Accessing Properties of Objects in Array

我对编程还很陌生,有点不知所措。现在,我的 NSArray 中的每个对象都有自己的属性,其中包含我需要的数据。我习惯于遍历一个数组来访问它的对象,但从来没有必要遍历一个数组并访问它的某些对象的属性。所以我完全迷路了。

通常当我需要遍历数组时,这是一个简单的过程,例如:

For (int i =0; i <= self.array.count; i++) {
NSLog(@"%d", i):
}

很简单。但是,现在我面临着查看存储在数组索引中的所有 jacked 并从该给定对象访问一条信息的挑战。我需要这样做和一个 for 循环,因为有多个对象。我相信从我在这个网站上读到的内容来看,我的逻辑是正确的,但我不确定如何访问对象的属性而不仅仅是对象本身。

当你说:

for (int i = 0; i <= self.array.count; i++) {
    // ... inside the loop ...
}

...然后当你在循环内时,可以获得数组中的每个对象,每次迭代一个,如[self.array objectAtIndex:i]。所以拿那个。 现在你有一件物品了!

现在只需访问您喜欢的那个对象的任何 属性。您可能希望将 cast 转换为该对象的正确 type,以便编译器了解这是什么类型的对象,并允许您想做什么就做什么

使用fast enumeration代替索引迭代,然后照常访问属性。

for( id obj in myArray ){    // Use a more specific type than id if possible
    NSLog(@"%@", [obj prop]);
}

另一种选择是使用 Block-based enumeration。在那里,您将编写一个 Block,其参数之一是数组中的一个对象。 (对象按顺序呈现给块。)

[myArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL * stop){
    NSLog(@"%@", [obj prop]);
}];

在这种情况下,如果出于某种原因需要索引,您也可以访问它。 stop argument allows early termination of the loop 如果你需要的话。