2011-05-08 19 views
0

我已經建立了一個基本的數據庫應用程序,用戶可以在其中插入記錄到一個表和應用程序顯示它們在一個TableView。sqlite數據庫重置在每個編譯和運行

一切工作正常,因爲它應該是。例如,即使我們從應用程序切換器中關閉應用程序並從跳板重新啓動應用程序,也會顯示新記錄。

但是每次我使用Xcode構建和運行時,數據庫都會進入默認記錄!新紀錄只是不存在。

這是正常嗎?......但如果我想測試我的應用程序以獲取新記錄怎麼辦?任何修復?

BTW,JFYI,下面是我用來編輯可編輯數據庫的代碼。

-(NSString *)createEditableDatabase{ 
// Check if DB already exists 
BOOL success; 
NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSError *error; 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDir = [paths objectAtIndex:0]; 
NSString *writableDB = [documentsDir stringByAppendingPathComponent:@"Database.db"]; 

success = [fileManager fileExistsAtPath:writableDB]; 

//The editable DB already exists 
if (success) { 
    return writableDB; 
} 


//The editable DB does not exist 
//Copy the default DB into App's Doc Dir. 

NSString *defaultPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Database.db"]; 

success = [fileManager copyItemAtPath:defaultPath toPath:writableDB error:&error]; 

if (!success) { 
    NSAssert1(0, @"Failed to create writable DB file: '%@'", [error localizedDescription]); 
} 
return writableDB; 

}

+0

該代碼看起來就像您總是碰到「複製默認數據庫」,您應該對第一個if(成功)...使用else部分。 – 2011-05-08 09:05:36

+0

@Nick沒有工作:( – BufferStack 2011-05-08 09:19:33

+0

@Rajat Bansal很難分辨出哪裏出了問題,你可以把NSLogs放到你的代碼中,當數據庫存在時,看看你自己,轉儲文件路徑等,看看它從什麼時候被複制默認db? – 2011-05-08 09:23:25

回答

0

在更深的挖掘,我注意到,修改數據庫中的取景器中的日期不更新,當我插入的記錄。所以,我發現我仍然在使用舊路徑來執行數據庫操作(而不是文檔之一)。 :)現在一切工作正常。無論如何,謝謝Nick