我可以将一个id值存储在float类型的数组中吗?

时间:2010-04-01 10:16:45

标签: cocoa-touch iphone-sdk-3.0 nsarray

我用了, for(值中的值)以从NSArray获取值。现在我想将它存储在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

在enemyDetal.txt我有

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

1 个答案:

答案 0 :(得分:2)

将一个对象(例如id)存储在一个浮点数组中肯定不是你想要的,并且会给你最奇怪的结果。

问题是你真正想做什么。如果数组中的NSNumber对象包含浮点值,则可以使用[value floatValue]将对象转换为浮点基元。

如果您的意图是将指针存储为浮动,请尝试(float)((int)value))。这个可能有效,但要注意,您很可能无法再次检索指针。