2016-04-23 31 views
0

我正在使用小部件應用程序。對於Today Extension,我是全新的。我想在應用程序和今天的擴展之間共享數據。我創建了一個數據庫。該數據庫中有4個表格。我發現這個代碼創建數據庫的應用程序組:與今天的擴展無法共享SQLite

NSString *appGroupId = @"group.appname"; 
    NSURL *appGroupDirectoryPath = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:appGroupId]; 
    dataBaseURL = [appGroupDirectoryPath URLByAppendingPathComponent:@"database.sqlite"]; 
    NSLog(@"dataBaseURL %@", dataBaseURL); 

它的工作。我的SQLite文件已經創建。但它沒有顯示我的表格。它顯示空的數據庫。我對此毫不知情。請幫忙。

+0

如果要創建新的數據庫,然後它會顯然是空的。 – Lion

+0

哦..那麼如何在SQLIte工具中使用我創建的數據庫?我已經創建了4個表格並將其添加到我的項目中。 @Lion – Monika

回答

1

如果你正在創建新的數據庫,那麼它顯然是空的。

你可以用目標c中的表創建數據庫。不需要從xcode外部創建數據庫並拖放yto xcode。你可以參考這個techotopia tutorial

現在,如果你把數據庫中的主束通過拖放即可進入像,

NSString *databasePath = [[NSBundle mainBundle] pathForResource:@"myDbName" ofType:@"sqlite"]; 

通過這種方式,你可以得到你的數據庫路徑。這裏的pathforresource是你的數據庫名稱,我認爲database在你的情況下,oftypeextention,我認爲sqlite在你的情況。

現在如果你想在URL,那麼你可以將其轉換在URL喜歡你的路徑字符串,

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:filePath]; 

    or 

    NSURL *fileURL = [NSURL fileURLWithPath:filePath]; 

希望這將有助於:)

+0

感謝您的回覆。它適用於我的應用程序。但我想與今天的擴展分享這個相同的數據庫。我怎樣才能做到這一點? – Monika

+0

不客氣。 :)我不太瞭解今天的擴展,所以谷歌它,你會發現一定的解決方案。如果你覺得這個答案有幫助,那麼接受它,以便其他有類似問題的人可以使用它。 – Lion

+0

最後..當我問我的問題,它創建空的數據庫。所以我使用了相同的代碼,然後通過編碼創建了表格。然後我解決了我的問題。因此,您在答案中寫下的一行「可以用目標c中的表創建數據庫」。幫助我解決它。 :D ..謝謝;) – Monika