Назначьте int новому int - PullRequest
0 голосов
/ 28 мая 2011

Пока у меня есть код

- (void)CreatenewBlock:(int)blockCountToSpawn
{
    for (int i=0; i != blockCountToSpawn; i++) 
    {
        theBlockxCord = arc4random() % 4;
        theBlockyCord = arc4random() % 4;
        NSLog(@"New Block with Cords (%i, %i)",theBlockxCord, theBlockyCord);
    }

}

Это циклично, пока не достигнет количества blockCountToSpawn. Это работает именно так, как я хочу, но я хочу каждый раз устанавливать новую переменную theBlockxCord.Таким образом, конечный результат будет выглядеть примерно так:

theBlockxCordOfBlock1=2
theBlockxCordOfBlock2=4
theBlockxCordOfBlock3=1
theBlockxCordOfBlock4=3

Вместо того, чтобы каждый раз переписывать BlockXCord.

Для бонусных баллов, существует ли единственный способ их вызова, может быть, в массивеЯ не должен продолжать делать это:

if (theBlockxCordOfBlock1 == 2 || theBlockxCordOfBlock3 == 2 ..etc)
{
   do stuff..
}

Ответы [ 2 ]

2 голосов
/ 28 мая 2011

По первому вопросу: поместите результаты в обычный массив, как любая программа на C, или в NSMutableArray.http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html

По второму вопросу: если вы использовали NSMutableArray для хранения объектов (скажем, NSNumber), вы можете вызвать containsObject:, чтобы определить, находится ли объект в массиве.http://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/occ/instm/NSArray/containsObject:

2 голосов
/ 28 мая 2011

Вы можете использовать массивы C или NSMutableArray.Вам нужно будет преобразовать int s в NSNumber s, прежде чем вы сможете добавить его в массив.

- (void)CreatenewBlock:(int)blockCountToSpawn
{
    NSMutableArray *blockXCoord = [NSMutableArray array]; // Retain it as needed.
    NSMutableArray *blockYCoord = [NSMutableArray array];
    for (int i=0; i != blockCountToSpawn; i++) 
    {
        [blockXCoord addObject:[NSNumber numberWithInt:(arc4random() % 4)];
        [blockYCoord addObject:[NSNumber numberWithInt:(arc4random() % 4)];
    }

    ...
}

, если вы хотите найти 2, тогда сделайте это

if ( [blockXCoord indexOfObject:[NSNumber numberWithInt:2]] != NSNotFound ) {
    ... do stuff
}

или

if ( [blockXCoord containsObject:[NSNumber numberWithInt:2]] ) {
    ... do stuff
}

РЕДАКТИРОВАТЬ

for ( int i = 0; i < [blockXCoord count]; i++ ) {
    NSPoint point = NSMakePoint([[blockXCoord objectAtIndex:i] intValue],[[blockYCoord objectAtIndex:i] intValue]);

    ... do something with the point.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...