2013-04-02 2 views
0

У меня есть файл, как это:Как читать координаты точки из файла с Objective-C?

1.0 1.0 
2.0 2.0 
-3.0 2.0 

каждая строка является координата точки.

Я не знаю, как написать код, чтобы сделать следующее: прочитайте эти координаты из файла, преобразуйте их в двойные и сохраните их в массиве как NSPoint.

BTW, я попытался написать Objective-C++, но кажется, что ifstream не работает, что является ошибкой XCode.

+0

'ifstream' определенно работает в Xcode; если у вас возникнут проблемы с этим, вы можете подумать о том, чтобы задать другой вопрос по этой теме. –

ответ

0

ли так:

ПРИМЕЧАНИЕ: Вы не можете хранить NSPoint в NSArray, так как все классы коллекций нужно Obj-C Objets для хранения и 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); 
} 
+0

Что делать, если я хочу, чтобы моя программа загружала файл с одного и того же пути? – HanXu