我剛開始使用iPhone開發。在其中一個示例中,我必須在tabbar控制器的表視圖中顯示一些存儲在sqlite數據庫中的數據,我必須將sqlite文件從應用程序包移動到documents文件夾。iPhone:如何將文件從資源複製到文檔?
我使用的應用模板 - 的iOS>應用>對於iPhone基於窗口的應用程序(存儲用於核心數據)
在通過的XCode(基SDK設置爲最新的iOS = 4.2)生成的模板,下面的代碼在那裏......
- (NSURL *)applicationDocumentsDirectory {
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
在試圖讓文檔文件夾的路徑,我用上面這樣給出的方法...
NSString *documentDirectory = [self applicationDocumentsDirectory];
這給給出警告NG - warning: incompatible Objective-C types initializing 'struct NSURL *', expected 'struct NSString *'
所以我改變了代碼如下...
// Added the message absoluteString over here
NSString *documentDirectory = [[self applicationDocumentsDirectory] absoluteString];
NSString *writableDBPath = [documentDirectory stringByAppendingPathComponent:@"mydb.sqlite"];
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"mydb.sqlite"];
BOOL success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!success) {
NSLog(@"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
呯!它給出了錯誤 - 'Failed to create writable database file with message 'The operation couldn’t be completed. No such file or directory'.'
我該如何找到文檔目錄的路徑,因爲由XCode模板生成的方法applicationDocumentsDirectory
不適用於我。
另外,有人可以拋開上面給出的applicationDocumentsDirectory
方法的目的。
謝謝
我得到的錯誤,因爲我沒有在writableDBPath添加的文件名。這個例子幫助我修復它。謝謝! +1 – voghDev 2014-11-26 11:52:16