я могу сохранить значение идентификатора в массиве типа с плавающей точкой? - PullRequest
0 голосов
/ 01 апреля 2010

я использовал, для (значение id в значениях), чтобы получить значение из NSArray. Теперь я хочу сохранить его в 2-мерном массиве с плавающей точкой [] []. Когда я пытаюсь присвоить значения массиву, он выдает ошибку: несовместимые типы в присваивании. Я попытался привести значение, но получил ошибку: значение указателя используется там, где ожидалось значение с плавающей запятой. Мне нужно хранить значения в 2-мерном массиве. Как я могу это сделать? Спасибо.

@implementation fromFileRead1
NSString *fileNameString;
int numberOfEnemies, numberOfValues;
-(id)init
{
    if( (self = [super init]) ) 
    {
        NSString *path = @"/Users/sridhar/Desktop/Projects/exampleOnFile2/enemyDetals.txt";
        NSString *contentsOfFile = [[NSString alloc] initWithContentsOfFile:path];
        NSArray *lines = [contentsOfFile componentsSeparatedByString:@"\n"]; 
        numberOfEnemies = [lines count];
        NSLog(@"The number of Lines: %d", numberOfEnemies);
        for (id line in lines)
        {
            NSLog(@"Line %@", line );
            NSString *string1 = line;
            NSArray *split1 = [string1 componentsSeparatedByString:@","];
            numberOfValues = [split1 count];
            NSLog(@"The number of values in Row: %d", numberOfValues);
            for (id value in split1)
            {
                NSLog(@"value %@", value);
                float value1;
                value1 = [split1 objectAtIndex:2]);
                NSLog(@"VAlue of Value1 at index 2: %f", value1 );
            }
        }
    }
    return self;
}
@end

В врагDetal.txt у меня есть

1,3,3
2,3,2.8
10,2,1.6

1 Ответ

2 голосов
/ 01 апреля 2010

Хранение объекта (например, id) в массиве с плавающей точкой, безусловно, не то, что вам нужно, и даст вам самые странные результаты.

Вопрос в том, что вы действительно хотите сделать. Если в вашем массиве есть объекты NSNumber, содержащие значения с плавающей точкой, вы можете использовать [value floatValue] для преобразования вашего объекта в примитив с плавающей точкой.

Если вы действительно хотели сохранить указатель в виде плавающего числа, попробуйте (float)((int)value)). Это может работать, но имейте в виду, что вы, скорее всего, не сможете снова получить указатель.

...