好吧,那麼羣組只是Xcode中的一個構造,用於保持您的應用程序資源的有序性。儘管Xcode使用小文件夾圖標,但並不一定意味着這些文件夾實際上是(Mac或iOS)文件系統上的單獨文件夾。
但是,聽起來好像您已將該文件添加爲捆綁軟件資源。這就是你發佈的代碼的樣子,但我必須問,確定。
最有可能的,唯一錯的是這個:
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"learn"
ofType:@"html"
inDirectory:@"src/html_files"];
應該是這個:
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"learn"
ofType:@"html"];
從the Apple documentation for NSBundle,
+ (NSString *)pathForResource:(NSString *)name
ofType:(NSString *)extension
inDirectory:(NSString *)bundlePath
bundlePath
The path of a top-level bundle directory. This must be a valid path. For example, to specify the bundle directory for a Mac app, you might specify the path /Applications/MyApp.app.
的bundlePath
參數並不意味着以指定到捆綁資源的相對路徑。不具有bundlePath
參數的pathForResource:ofType:
版本幾乎總是你會使用什麼。它會發現learn.html文件是任何一個,一旦安裝你的應用程序,以及完整的路徑返回到。你不必擔心它是如何嵌套的。這只是一個捆綁資源。
給一個嘗試。正如我在我的評論所說,雖然,我總是建議進行調試服用error
參數的優勢:
NSError* error;
NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error: &error];
if (error != nil) {
NSLog(@"Error with stringWithContentsOfFile: %@", [error localizedDescription]);
}
**凡**上的文件系統是這個文件?這是一個捆綁資源,用您的應用程序構建?它是你的應用的**文檔**或**緩存**目錄中的文件嗎?請調試您的應用程序。在分配了htmlFile後停止。使用'NSLog()'顯示'htmlFile'的值。然後,越過「htmlString」被分配的行。 'htmlString'的價值是什麼?它是'零'嗎?我總是推薦使用它的方法的'NSError'參數,並在操作完成後檢查它。您正在傳遞'error:nil',如果發生錯誤,您不會看到錯誤。 – Nate 2012-08-14 03:08:07
@Nate我做了一個新的「組」,並把html文件存在。我不確定這意味着它是否在捆綁資源中。我如何在那裏添加它?或者我應該在那裏添加它?我對這個文件做了什麼正確的事情? – GeekedOut 2012-08-14 03:25:31