2011-10-30 63 views
1

在項目中,我有一個名爲GAME.js一個純文本文件,而我試圖獲得該文件的內容。獲取文件的內容在Xcode

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

聽起來像它應該工作,但它只是返回一個空字符串。

請幫我解決這個問題。

回答

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); 
} 
+0

o_O操作無法完成。 (可可錯誤260) - (空) – milo

+0

對不起,我misinterperted該評論是在我給你的代碼中的錯誤,而不是實際的錯誤......我會向谷歌錯誤代碼(260),但看看@ChrisLedet答案,這可能會奏效。如果他的答案不起作用,請嘗試我在上一個答案編輯中添加的內容。 – chown

+0

注意,在可可(觸摸)應該[檢查錯誤輸出參數之前檢查方法返回值](http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ErrorHandlingCocoa/CreateCustomizeNSError/CreateCustomizeNSError的.html)。 – 2011-10-30 04:50:05

8

GAME.jsResources文件夾中的Xcode項目並使用下面的代碼來獲取文件的內容。

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