获取类属性的值(NSMutableArray)

时间:2015-02-04 12:57:47

标签: ios objective-c iphone for-loop nsmutablearray

我是Objective-c的新手,已经在App Store中发布了我的应用程序的第一个版本,但我想改进我的应用程序,因为在当前版本中,我只能输入4个玩家名称。

在我的新iOS应用程序中,我有一个表视图,列出了用户可以在另一个视图控制器中输入的所有名称。

当用户按下播放时,我想显示一个名为随机人的UIAlertView。

此时,我想在NSLog中显示所有名称,但我无法弄清楚如何做到这一点。使用我当前的代码,应用程序不断崩溃。

我有一个类Zoep,它是NSObject的子类。并具有以下属性:

@property (strong, nonatomic) NSString *playername;
@property BOOL *checked;

在tableview控制器中,我有以下代码来显示NSMutableArray中的项目并显示NSLog中的所有名称。我想我现在差点就这么做了:

- (IBAction)play:(id)sender {

    NSString *aantal = [NSString stringWithFormat: @"%ld", (long)[self.zoepers count]];

    NSLog(@"array count: %@", aantal);


    for (int i = 0; i < 2; ++i) {
        NSLog(@"Naam: %lu", (unsigned long)[self.zoepers indexOfObject:[i]]);
    }
}

使用上面的代码,我仍然收到以下错误,无法编译:

  

预期标识符

有人能指出我正确的方向吗?当你有任何提示给我时,我也想知道它们。

提前多多感谢!

2 个答案:

答案 0 :(得分:0)

更改以下代码..

indexOfObject引用id类型的Object。实际上你传递的是int而不是object ..

U可以使用(。)像obj.propertyname获取对象的某些属性的值。

for (int i = 0; i < 2; ++i) 
  {
    Zoep *zoepObj=[self.zoepers objectAtIndex:i];

    NSLog(@"Naam: %@",zoepObj.playename);
 }

希望它能帮到你..

答案 1 :(得分:0)

NSString是一个对象,可以使用%@打印而不是%lu。更新你的代码,你就得到了你的名字。

for (int i = 0; i < 2; ++i) {
    Zoep *player = (Zoep *)[self.zoepers objectAtIndex:i];
    NSLog(@"Naam: %@", player. playername);
}

结论:您将Zoep类对象存储到zoepers数组中,因此在访问zoepers时,您首先会引用Zoep类对象和然后可以访问该类的属性。

BTW,indexOfObject:接受一个对象并返回索引(数组中的位置)。