1. 程式人生 > 其它 >RISC-V MCU應用教程之PWR睡眠模式

RISC-V MCU應用教程之PWR睡眠模式

應用沙盒

在想要本地儲存資料之前,那就要知道一下什麼是應用沙盒 ,其實很好理解應用沙盒就是應用的資料夾,與其他檔案系統隔離。每一個iOS應用都有自己的應用沙盒,應用必須待在自己的沙盒裡,其它應用不能訪問該沙盒。

沙盒結構

 

 

 

  1. Documents :儲存應用執行時生成的需要持久化的資料,iTunes同步裝置時會備份該目錄。例如,遊戲應用可將遊戲存檔儲存在該目錄
  2. Library/Caches : 儲存應用執行時生成的需要持久化的資料,iTunes同步裝置時不會備份該目錄。一般儲存體積大、不需要備份的非重要資料
  3. Library/Preference : 儲存應用的所有偏好設定,iOS的Settings(設定)應用會在該目錄中查詢應用的設定資訊。iTunes同步裝置時會備份
    該目錄
  4. tmp : 儲存應用執行時所需的臨時資料,使用完畢後再將相應的檔案從該目錄刪除。應用沒有執行時,系統也可能會清除該目錄下的檔案。iTunes同步裝置時不會備份該目錄

資料儲存方式

1.NSUserDefaults

NSUserDefaults單例,儲存在偏好設定裡,它可以用來儲存使用者的偏好設定,例如:使用者名稱,字型的大小,使用者的一些設定等。

2.plist檔案

plist的根Type只能是字典(NSDictionary)或者是陣列(NSArray)所以歸檔時我們只能將陣列或字典儲存到plist檔案中,但是NSString也能通過歸檔儲存到plist檔案中同時它也可以通過stringWithContentsOfFile解檔,它儲存到plist中時Type是空的,Value是有值的!

  3.NSKeyedArchiver歸檔(NSCoding) 只有遵守了NSCoding協議的類才可以用NSKeyedArchiver歸檔和NSKeyedUnarchiver解檔,如果物件是NSString、NSDictionary、NSArray、NSData、NSNumber等型別,可以直接用NSKeyedArchiver歸檔和NSKeyedUnarchiver解檔~
  4.FMDB iOS中使用C語言函式對原生SQLite資料庫進行增刪改查操作,複雜麻煩,於是,就出現了一系列將SQLite API封裝的庫,如FMDB
FMDB是針對libsqlite3框架進行封裝的三方,它以OC的方式封裝了SQLite的C語言的API,使用步驟與SQLite相似 FMDB的優點是:
(1) 使用時面向物件,避免了複雜的C語言程式碼
(2) 對比蘋果自帶的Core Data框架,更加輕量級和靈活
(3) 提供多執行緒安全處理資料庫操作方法,保證多執行緒安全跟資料準確性
FMDB缺點:
(1) 因為是OC語言開發,只能在iOS平臺上使用,所以實現跨平臺操作時存在限制性   5.coreData 1.什麼是coreData
  • iOS開發中實現資料持久化儲存的⼀一種重要⼿段。
  • CoreData提供了物件-關係對映的功能,能將 Objective-c的物件使⽤資料庫或者XML等⽅式 儲存。
  • 如果使⽤用CoreData將資料存到資料庫中,不⽤通過sql語句來操作資料
2.如何使用coreData
        1)NSManagedObjectModel,
            作用:用來載入 coreData資料模型⽂件,所有的資料模型可以 全部載入到此物件中。
        2)NSManagedObjectContext,
            作用:⽤於操作資料 模型(物件),並監測資料模型(物件)的變化。
        3)NSPersistentStoreCoordinator,
            作用:資料持久化儲存協調器,負責排程上層與底層對資料的操作。        
        4)NSManagedObject,
            作用:具體的資料模型物件
        5)NSEntityDescription,
            作用:模型描述類,能夠 例項化得到具體的資料模型物件
coreData的使用
    1.插入資料
        1)+ (id)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context;
    作用:例項化一個數據模型
    
        - (BOOL)save:(NSError **)error;
    作用:儲存到本地

    2.查詢資料

        1)NSFetchRequest,
            作用:資料查詢請求類
        2)NSPredicate,
            作用:通過謂詞設定查詢條件的類
        3)NSSortDescriptor
            作用:按條件排序查詢結果

    3.更新資料(建立在查詢資料之上)
        
    4.刪除資料(建立在查詢資料之上)
        - (void)deleteObject:(NSManagedObject *)object;
coreData和KVC技術的結合
    
    - (void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues;
    如果資料庫儲存的型別和提供的資料型別不一致,必須重寫此方法