如何用Objective-C从文件中读取点坐标



我有一个这样的文件:

1.0 1.0
2.0 2.0
-3.0 2.0

每条线是一个点的坐标。

我不知道如何编写代码来做以下事情:从文件中读取这些坐标,将它们转换为double并将它们作为NSPoint存储在数组中。

BTW,我试着写objective - c++,但似乎ifstream不工作,这是XCode的一个bug。

这样做:

注意:你不能在NSArray中存储NSPoint,因为所有的集合类都需要obj-c对象来存储,而NSPoint是一个结构体。所以你需要把它转换成NSValue

NSString *yourPath=[@"~/Desktop/myFile.txt" stringByExpandingTildeInPath];
NSFileHandle *inFile = [NSFileHandle fileHandleForReadingAtPath:yourPath];
NSData  *myData=[inFile readDataToEndOfFile];
NSString *myText=[[NSString alloc]initWithData:myData encoding:NSASCIIStringEncoding];
NSArray *values = [myText componentsSeparatedByString:@"n"];
NSMutableArray *points=[NSMutableArray new];
for (NSString *string in values) {
    NSArray *lines=[string componentsSeparatedByString:@" "];
    NSPoint point=NSMakePoint([lines[0]floatValue], [lines[1]floatValue]);
    points[points.count]=[NSValue valueWithPoint:point];
}

for (NSValue *value in points) {
    NSLog(@"->%@",value);
}

相关内容

  • 没有找到相关文章

最新更新