我是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]]);
}
}
使用上面的代码,我仍然收到以下错误,无法编译:
预期标识符
有人能指出我正确的方向吗?当你有任何提示给我时,我也想知道它们。
提前多多感谢!
答案 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:
接受一个对象并返回索引(数组中的位置)。