iOS開發真機上資料庫無法寫入

2021-09-30 19:43:11 字數 1363 閱讀 3709

在使用資料庫的時候,模擬器上能對資料庫進行增刪改等操作,但是在真機上執行就無法進行這些操作了.

在模擬器和真機上資料庫儲存的資料夾不同,而在真機上因為蘋果的限制無法修改沙盒內的三個資料夾以外的資料夾,所以需要把資料庫拷貝到沙盒中.

獲取資料庫的方式也要修改

原** (獲取資料庫)

nsstring *dbpath=[[nsbundle mainbundle] pathforresource:@"

databasename

" oftype:@"db"];

_database = [fmdatabase databasewithpath:dbpath];

解決**

(紅色字型是根據各自需要修改的地方)

// 獲取 document 資料夾

nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory,nsuserdomainmask,yes);

// 路徑 

nsstring *documentsdirectory = [paths firstobject];

// 獲取資料庫路徑   databasename : 資料庫名稱

// 判斷資料庫是否在目錄下,如果沒有就建立(拷貝)進來

if([[nsfilemanager defaultmanager] fileexistsatpath:documentlibraryfolderpath])else{

nsstring *resourcesampleimagesfolderpath =[[nsbundle mainbundle]

pathforresource:@"databasename"

oftype:@"db"];

nsdata *mainbundlefile = [nsdata datawithcontentsoffile:resourcesampleimagesfolderpath];

[[nsfilemanager defaultmanager] createfileatpath:documentlibraryfolderpath

contents:mainbundlefile

attributes:nil];

// 獲取資料庫 , 用的fmdb

_database = [fmdatabase databasewithpath:documentlibraryfolderpath];

iOS開發 資料庫

大型資料庫 1 sqlserver 只能在windows下使用,配置繁瑣 2 my sql 適用於網頁 3 oracle 商業類的資料庫 可以跨平台,有iso認證 sqlite 小型,輕量,微型資料庫 每個表單只有乙個主鍵 其他的都不是主鍵 不允許為空 sqlite 建立表create table ...

資料庫表空間滿了,資料無法寫入排查步驟

資料庫表空間滿了,資料無法寫入排查步驟 最近遇到乙個問題,我們資料庫滿了,無法寫入資料。第一步 查詢表空間使用情況 select a.tablespace name 表空間名 total 表空間大小 free 表空間剩餘大小 total free 表空間使用大小 total 1024 1024 10...

iOS開發資料庫篇 FMDB資料庫佇列

一 示例 1.需要先導入fmdb框架和標頭檔案,由於該框架依賴於libsqlite庫,所以還應該匯入該庫。05 fmdb資料庫佇列4 5 6 7 89 import yyviewcontroller.h 10 import fmdb.h 11 12 inte ce yyviewcontroller ...