获取 class 属性 的值 (NSMutableArray)

get value of class property (NSMutableArray)

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

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

当用户按下播放键时,我想显示一个带有随机人物姓名的 UIAlertView。

此刻,我想在 NSLog 中显示所有名称,但我不知道该怎么做。使用我当前的代码,该应用程序不断崩溃。

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

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

在 table 视图控制器中,我有以下代码来显示 NSMutable 数组中的项目并显示 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]]);
    }
}

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

Expected identifier

有人能给我指出正确的方向吗?当你有什么窍门给我的时候,我也想知道。

非常感谢!

如下更改您的代码..

indexOfObject 指的是 id 类型的对象..实际上你传递的是 int 而不是对象..

你可以使用 (.) 来获取一些 属性 对象的值,比如 obj.propertyname..

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

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

希望对你有帮助..

NSString 是一个对象,可以使用 %@ 而不是 %lu 打印。更新您的代码,您就拥有了自己的名字。

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

结论:您正在将 Zoep class 对象存储到您的 zoepers 数组中,因此在访问 zoepers 时您将首先引用 Zoep class 对象,然后可以访问该 class.

的属性

顺便说一句,indexOfObject: 获取一个对象并将 return 索引(数组中的位置)。