2010-04-01 45 views
0

我用, (值的值)从NSArray获取值。现在我想将它存储在2维浮点数组[] []中。当我尝试给数组赋值时,它给出错误:赋值中的不兼容类型。 我试图转换的值,但我得到了错误:指针值用于预期浮点值。我需要将值存储在2维数组中。我怎么做到的? 谢谢。可以存储浮点类型数组中的id值吗?

@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 
+0

请显示一些代码。 – 2010-04-01 10:18:03

回答

2

在float数组存储对象(如ID)肯定是不是你想要的,并给你最奇怪的结果。

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

如果你的目的是真正存储指针作为浮动尝试(float)((int)value))。这可能工作,但被警告,这将很可能无法再次检索指针。

+0

我想我没有很好地解释我的问题。我试过你给出的解决方案,它没有给出任何错误,但结果是一些大的浮动值,如2322222.000000。我编辑了我的程序。 谢谢 – 2010-04-01 11:20:28

+1

啊,所以你的值是NSStrings。为了得到一个原始值(像一个浮点数),你必须先转换它们。 NSString提供了floatValue方法,所以你可以在你的循环中做这样的事情:'float value1 = [[split1 objectAtIndex:2] floatValue];'。需要注意的是,Objective-C不像Java那样自动复制/取消私有权限。 – Alfonso 2010-04-01 15:25:24

+0

嗨, 谢谢你帮助我。 – 2010-04-02 04:22:01

相关问题