作为新手,我坚持从我放入NSMutableArray的对象中获取值。为了全面了解我的问题,我将非常感谢您阅读以下内容:
(在Xcode中写入控制台)
让我说我按如下方式生成一个新对象:
Person *player = [[Person alloc] init];
player.age = 10;
player.height = 10;
player.name = @"player";
当我继续编写我的程序时,我可以更改播放器的上述值,即
player.age = 23; etc.....
如果我想创建另一个Person(player2),我会像这样重复上面的内容:
Person *player1 = [[Person alloc] init];
player1.age = 13;
player1.height = 4;
player1.name = @"player1";
在我的程序中,我现在可以更改和比较2个对象的值,即
if (player.age == player1.age) bla bla bla
如果我想创建20多个Person对象,我的问题就开始了 - 我知道如何将所有对象放在循环/ NSMutableArray中,如下所示:
for (int i = 0; i < 20; i++)
{
Person *player = [[Person alloc] init];
player.age = 10;
player.height = 10;
player.name = @"player";
[myArray addObject:player];
[player release];
}
myArray中的所有对象都是单独的,但具有相同的值。没关系 !但是如何获取或更改myArray中的对象? (不是在运行时间)
如果[myArray objectAtIndex:4];包含以下值:
player.age = 10;
player.height = 10;
player.name = @"player";
如何访问myArray中的对象,以便我可以比较/排序/添加等..
以下是我想要做的例子,但我知道错了:
if (player.age == [myArray personAtIndex:15.age];
或
NSLog(@"@ has a height of %i",[myArray personAtIndex:15:name:height];
打印出&gt;&gt;人的身高是10
我真的很感谢你帮助我 - 作为一个新手,我发现很难继续前进,直到我理解了这个问题。非常感谢您阅读本文。
答案 0 :(得分:0)
您需要研究NSArray的文档,特别是objectAtIndex
方法。
[[(Person*)myArray objectAtIndex:15] age]
会给你你想要的价值。我会打破这个:
(Person*)
告诉编译器你希望得到一个Person对象objectAtIndex
在age
的索引15处返回一个对象(任何对象,因此转换为Person,以防止编译器抱怨它可能不响应myArray
)age
,因为您无法在投射对象上使用点表示法或者,您可以这样做:
Person *aPerson = (Person*)[myArray objectAtIndex:15];
aPerson.age = 15;
一旦有了已知类型的对象,就可以使用点语法。