快速枚举数组

时间:2015-03-13 23:30:18

标签: ios objective-c arrays xcode loops

您好我试图遍历数组中的对象数组来尝试为它们分配值。我通过快速枚举来做到这一点但是当我运行构建它成功但崩溃并指向这一行:   for(SKSpriteNode * var in objects_array)

。我弄乱了语法吗?我还不熟悉objective-c。它告诉我var是未使用的,当我运行构建时,该点是一个断点。

(顺便说一句,我没有包含我创建实际SKSpriteNode对象的代码,因为它们具有多个属性而且我认为它可能会让人分心。我可以在需要时发布它)

谢谢!

NSMutableArray* objects_array = [[NSMutableArray alloc] init];

NSMutableArray * value_array = [[NSMutableArray alloc] init];

[objects_array addObject:@"left"];
[objects_array addObject:@"middle"];
[objects_array addObject:@"right"];

for (SKSpriteNode* var in objects_array) {

    int value =arc4random_uniform(1);

    [value_array addObject:[NSNumber numberWithInt:value]];
}

2 个答案:

答案 0 :(得分:0)

您需要初始化数组:

NSMutableArray* objects_array = [[NSMutableArray alloc] init];
NSMutableArray* value_array  = [[NSMutableArray alloc] init];

答案 1 :(得分:0)

你有两个问题。第一个是罗里说的;你忘了初始化你的变量:

NSMutableArray* objects_array = [[NSMutableArray alloc] init];
NSMutableArray* value_array  = [[NSMutableArray alloc] init];

第二个问题是您正在使用不同的变量。在这里,您说您正在使用NSString*

[objects_array addObject:@"left"];
[objects_array addObject:@"middle"];
[objects_array addObject:@"right"];

在这里,您说您正在使用SKSpriteNode*

for (SKSpriteNode* var in objects_array)

如果你的精灵被称为左,中,右,你应该这样做来初始化它们(例如):

[SKSpriteNode spriteNodeWithImageNamed:@"left.png"];

在那种情况下,那应该是你的:

for (NSString* var in objects_array)