捆綁資源可以在iPhone模擬器與設備(在我的情況下,iPad)上訪問的方式有一些區別嗎?我能夠訪問前者的文件,但不能訪問後者。模擬器和設備之間訪問資源的差異?
NSString *filePath = [NSString stringWithFormat:@"%@%@",[[NSBundle mainBundle] bundlePath], @"/AppResources/html/pages/quickHelp.html"];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:filePath];
// fileExists == YES in the debugger on both the simulator and the device
NSString *path = [NSString stringWithFormat:@"AppResources/html/pages/%@", contentsFileName];
NSString *pathForURL = [[NSBundle mainBundle] pathForResource:path ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:pathForURL isDirectory:NO];
的代碼在模擬器上述工作正常,但在裝置pathForResource:路徑返回nil,所以最後一行拋出一個「零字符串參數」異常。
我失去了一些東西明顯?
編輯:當然,在上面的@「quickHelp」正在通過contentsFileName var。
edit2如果它有什麼不同,在我的構建設置中,「Base SDK」設置爲「iPhone Device 4.0」,「iPhone OS Deployment Target」設置爲「iPhone OS 3.1.3」。任何其他可能有影響的設置?
pathForRes補充說,不是嗎?它在模擬器中,至少... 我不得不將它添加到* filePath中,以便我可以手動創建整個路徑。 – Tony 2010-06-07 17:52:36
因爲你正在尋找一個名爲quickHelp.html的文件,你不應該只是把... pathForResource:@「quickHelp」ofType:@「html」]? (因爲它會搜索你的應用程序路徑) – KevinDTimm 2010-06-07 18:06:36
不,我不認爲它會遞歸搜索子目錄。無論如何,我的確嘗試過,硬編碼爲pathForResource:@「quickHelp」ofType:@「html」,但是會導致代碼在模擬器和設備中都失敗。 – Tony 2010-06-07 18:16:38