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

时间:2013-04-02 12:18:26

标签: objective-c nspoint

我有一个这样的文件:

1.0 1.0
2.0 2.0
-3.0 2.0

每一行是一个点的坐标。

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

BTW,我试着编写Objective-C ++,但似乎ifstream不起作用,这是XCode的一个bug。

1 个答案:

答案 0 :(得分:0)

这样做:

注意:您不能在NSArray中存储NSPoint,因为所有集合类都需要obj-c objets来存储,NSPoint是struct。所以你需要将它转换为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);
}