2014-04-04 160 views
0

我看到很多话题,但没有人回答我的问题。 这个程序在模拟器上运行,但是当我执行它时,它会崩溃。 这是我的简单代码。谢谢!Xcode应用程序在模拟器上运行,但不在设备上

NSURL *url=[NSURL fileURLWithPath:@"/Users/marco/Desktop/Letters/1.txt"]; 
NSString *fileContent = [NSString stringWithContentsOfURL:url]; 
NSLog(@"fileContent = %@", fileContent); 
NSArray * a = [NSArray arrayWithObjects:fileContent, nil]; 
Output.text=[a objectAtIndex:0]; 
NSLog (@"The 4th integer is: %@", a); 
+1

该URL犯规您的设备上存在吗? – Fonix

+0

如果没有越狱,你无法访问驻留在应用沙箱外的文件。 – rckoenes

回答

0

将您的1.txt文件移动到您的设备上,例如您的文档文件夹。

然后改变你的应用程序的第一行,像这样:

NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; 
NSString *filePath = [NSString stringWithFormat:@"%@/1.txt", documentsPath]; 
NSURL *url = [NSURL fileURLWithPath:filePath]; 
+0

或者,可以在构建阶段将该文件添加到“复制包资源”中。 –

0

既然你说这个工程在模拟器上,我会假设你正确添加文件到您的项目。如果没有,将文件添加到您的项目和目标。您可以通过NSBundle获取URL在构建时你包括的任何资源:

NSBundle *bundle = [NSBundle bundleForClass:[self class]]; // often you will see [NSBunble mainBundle, but both work 
NSURL *url = [bundle URLForResource:@"1" withExtension:@"txt"]; 
相关问题