iPhone读取文件-奇怪的行为
所以我有一个名为iPhone读取文件-奇怪的行为,iphone,objective-c,ios,Iphone,Objective C,Ios,所以我有一个名为answers.txt的文件,看起来像这样: 1:A 2:B 3:BC ...... 所以一堆线被一条新线隔开 我使用此代码将行放入NSArray: NSStringEncoding encoding; NSError* error; NSString* myString = [NSString stringWithContentsOfFile:filePath usedEncoding:&encoding error:&error]; NSArray *l
answers.txt
的文件,看起来像这样:
1:A
2:B
3:BC
......
所以一堆线被一条新线隔开
我使用此代码将行放入NSArray
:
NSStringEncoding encoding;
NSError* error;
NSString* myString = [NSString stringWithContentsOfFile:filePath usedEncoding:&encoding error:&error];
NSArray *lines = [myString componentsSeparatedByString:@"\n"];
该文件是unix风格编写的,因此行之间用\n
分隔,而不是\r\n
现在开始解决问题:
当我在模拟器上构建时,如果我在\r\n
处拆分,我会得到一个正确的行数组,如果我在\n
处拆分,我会得到一个不正确的数组(我的意思是它确实在\n
处拆分,但是我在处再次拆分每一行:
,第二个元素在末尾有一个新行)
当我在设备上构建时,它的作用正好相反(它在\n
处正确拆分,如果在\r\n
处拆分,我只得到一个元素-可能是因为文件中没有\r
)
我遗漏了什么吗?令人惊讶的是,模拟器和设备有不同的行为,但您可以通过使用以下方法来克服问题:
[str componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
对于文档