在Xcode中获取文件的内容

时间:2011-10-30 04:17:30

标签: objective-c xcode file io

在我的项目中,我有一个名为GAME.js的纯文本文件,我正在尝试获取该文件的内容。

[NSString stringWithContentsOfFile:@"GAME.js" encoding:NSUTF8StringEncoding error:nil];

听起来应该可以工作,但它只是返回一个空字符串。

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:8)

GAME.js放入Xcode项目的Resources文件夹中,并使用以下代码获取文件内容。

NSError *error = nil;
NSString* path = [[NSBundle mainBundle] pathForResource:@"GAME" ofType:@"js"];
NSString* gameFileContents = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];

答案 1 :(得分:2)

如果你传入NSError,它会告诉你究竟是什么问题:

NSError *error = nil;
NSString *myString = [NSString stringWithContentsOfFile:@"GAME.js" encoding:NSUTF8StringEncoding error:&error];

if (error) {
    NSLog(@"%@", [error localizedDescription]);
} else {
    NSLog(@"%@", myString);
}

NSError Documentation


另外,检查它是否在您的文档目录中,可以使用NSSearchPathForDirectoriesInDomains访问:

NSError *error = nil;

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *fullPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"GAME.js"];

NSString *myString = [NSString stringWithContentsOfFile:fullPath encoding:NSUTF8StringEncoding error:&error];

if (error) {
    NSLog(@"%@ - %@", [error localizedDescription], [error localizedFailureReason]);
} else {
    NSLog(@"%@", myString);
}