IOS 之資料庫 的幾種方式
在iOS開發過程中,不管是做什麼應用,都會碰到資料儲存的問題。將資料儲存到本地,能夠讓程式的執行更加 流暢,不會出現讓人厭惡的菊花形狀,使得使用者體驗更好。下面介紹⼀一下資料儲存的方式:
1.NSKeyedArchiver:採用歸檔的形式來儲存資料,該資料物件需要遵守NSCoding協議,並且該物件對應的類必須提 供encodeWithCoder:和initWithCoder:方法。前⼀一個方法告訴系統怎麼對物件進行編碼,而後⼀一個方法則是告訴系統怎 麼對物件進行解碼。例如對Possession物件歸檔儲存。
定義Possession:
@interface Possession:NSObject{//遵守NSCoding協議
NSString *name;//待歸檔型別 }
@implementation Possession -(void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:name forKey:@"name"]; }
-(void)initWithCoder:(NSCoder *)aDecoder{
name=[[aDeCoder decodeObjectforKey:@"name"] retain];
}
2.歸檔操作: 如果對Possession物件allPossession歸檔儲存,只需要NSCoder子類NSKeyedArchiver的方法
NSString *path = [self possessionArchivePath];
[NSKeyedArchiver archiveRootObject:allPossessions toFile: path ]
解壓操作: 同樣呼叫NSCoder子類NSKeyedArchiver的方法unarchiveRootObject:toFile: 即可 allPossessions
= [[NSKeyedUnarchiver unarchiveObjectWithFile:path] retain];
缺點:歸檔的形式來儲存資料,只能⼀一次性歸檔儲存以及⼀一次性解壓。所以只能針對小量資料,而且對資料操作比較 笨拙,即如果想改動資料的某⼀一小部分,還是需要解壓整個資料或者歸檔整個資料。
儲存資料:
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults]; NSString *name [email protected]”default string“;
[defaults setObject:firstName forKey:@"name"];
//獲得UIImage例項
UIImage *image=[[UIImage alloc]initWithContentsOfFile:@"photo.jpg"];
NSData *imageData = UIImageJPEGRepresentation(image, 100);//UIImage物件轉換成NSData [defaults synchronize];//用synchronize方法把資料持久化到standardUserDefaults資料庫
讀取資料:
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
NSString *name = [defaults objectForKey:@"name"];//根據鍵值取出name
NSData *imageData = [defaults dataForKey:@"image"];
UIImage *Image = [UIImage imageWithData:imageData];//NSData轉換為UIImage
3. Write寫入方式:永久儲存在磁碟中。具體方法為:
第⼀一步:獲得檔案即將儲存的路徑:
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);//使用C函式NSSearchPathForDirectoriesInDomains來獲得沙盒中目錄的全路
徑。該函式有三個引數,目錄型別、he domain mask、布林值。其中布林值表示是否需要通過?~擴充套件路徑。 而且第⼀一個引數是不變的,即為NSSearchPathDirectory 。在IOS中後兩個引數也是不變的,即為:
相關推薦
iOS儲存的幾種方式
1.寫檔案 NSData *dat = [[NSDataalloc]initWithContentsOfURL:[NSURLURLWithString:imageUrl]]; NSString *fullPath = [[NSHomeDirectory() strin
IOS 之資料庫 的幾種方式
在iOS開發過程中,不管是做什麼應用,都會碰到資料儲存的問題。將資料儲存到本地,能夠讓程式的執行更加 流暢,不會出現讓人厭惡的菊花形狀,使得使用者體驗更好。下面介紹⼀一下資料儲存的方式: 1.NSKeyedArchiver:採用歸檔的形式來儲存資料,該資料物件需要遵守NSCoding協議,並且該物件對應
iOS代碼加密的幾種方式
red .sh 最簡 應用安全 adr 變量名 尋找 技術分享 混淆 眾所周知的是大部分iOS代碼一般不會做加密加固,因為iOS APP一般是通過AppStore發布的,而且蘋果的系統難以攻破,所以在iOS裏做代碼加固一般是一件出力不討好的事情。萬事皆有例外,不管iOS、a
設計模式之單例模式【內附物件例項化幾種方式、實現執行緒安全幾種方式】
繼續來複習常用的設計模式-單例模式,順便回憶一下執行緒安全的幾種實現方式。 一、什麼是單例模式 單例模式,簡單常用的一種設計模式,也很好的體現了程式碼控制物件在記憶體數量的一種方式,主要分2種實現方式: ①餓漢式,執行緒安全 ②懶漢式,執行緒不安全(新增鎖機制,可以實現執行緒安全)
iOS關於載入圖片的幾種方式選擇
最近在開發過程中遇到一些效能優化的東西,這次來說說關於圖片載入的效能優化和選擇。 大家都知道建立UIImage常用以下幾種方式 + (nullable UIImage *)imageNamed:(NSString *)name; // load from main bundle
web前端之跨域的幾種方式
一、什麼是跨域 JavaScript出於安全方面的考慮,不允許跨域呼叫其他頁面的物件。那什麼是跨域呢,簡單地理解就是因為JavaScript同源策略的限制,a.com域名下的js無法操作b.com或是c.a.com域名下的物件。 當協議、子域名、主域名、埠號中任意一個不相同時,都算作不
資料庫設計之規範化--------幾種正規化詳解
資料庫的設計正規化是資料庫設計所需要滿足的規範,滿足這些規範的資料庫是簡潔的、結構明晰的,同時,不會發生插入(insert)、刪除(delete)和更新(update)操作異常。反之則是亂七八糟,不僅給資料庫的程式設計人員製造麻煩,而且面目可憎,可能儲存了大量不需要的冗餘資訊。  
iOS 連線外設的幾種方式
聯絡人:石虎 QQ:1224614774 暱稱: 嗡嘛呢叭咪哄 &
react之傳遞資料的幾種方式props傳值、路由傳值、狀態提升、redux、context
react之傳遞資料的幾種方式 1、父子傳值 父傳值:<子的標籤 value={'aaa'} index={'bbb'}></子的標籤> 子接值:<li key={this.props.index}>{this.props.value}</li>
清空資料庫表結構的幾種方式
一、SQL中的語法 1、drop table 表名稱 eg: drop
Vue指令v-for之遍歷陣列,json物件的幾種方式
定義資料: <script> new Vue({ el:"#test", data:{  
iOS中保證執行緒安全的幾種方式與效能對比
一、前言 前段時間看了幾個開源專案,發現他們保持執行緒同步的方式各不相同,有@synchronized、NSLock、dispatch_semaphore、NSCondition、pthread_mutex、OSSpinLock。後來網上查了一下,發現他們的實現機制各不相同,效能也各不一
php連線資料庫的幾種方式
<?php $name = $_POST["u_name"]; //flag1:$_POST["u_name"] $pass = $_POST["u_pass"]; $sql2 = "select * from admin where username = ? and pas
iOS 實現圖片圓角的幾種方式
第一種方法:通過設定layer的屬性 最簡單的一種,但是很影響效能,一般在正常的開發中使用很少. UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 10
python學習之網站的編寫(HTML,CSS,JS)(二十一)----------事件(例如點選事件等)及繫結事件的幾種方式
事件:什麼叫做事件呢,就是我們在頁面中的一些滑鼠和鍵盤操作,比如onclick就是點選事件,然後我們將介紹幾種繫結事件的方式。 1.在標籤中繫結 <div onclick="fuc()"></div> <script> fun
登入mysql資料庫的幾種方式
登入mysql資料庫的幾種方式 第1種 (通過mysql自帶的客戶端,MySQL 5.5 Command Line Client) 不推薦這種方式 注意:這種登入方式,只適用於root使用者,不夠靈活!(只適合於root使用者登入,只限於root使用者,以後我們可
iOS效能檢測之Instrunments - 幾種常用工具簡單介紹
Instrunments: 沒錯,就是這貨,很多人平時開發可能不一定會用到這個,但我要說的是,學會使用它,會讓你加分不少哦 先來一張一覽圖: 兩種方式都行。 2、今天主要介紹一下我常用的3種:Core Animation 、Leaks、Time Profiler
java之在普通程式碼中獲取bean的幾種方式
普通程式碼中獲取bean的幾種方式 最近在專案中,因程式碼模式要求,需要在普通類中去主動呼叫bean例項,經過參考分析,做如下的整理。 在初始化時儲存ApplicationContext物件 通過Spring提供的utils類獲取ApplicationC
python之實戰str引入輸出幾種方式
字串取變數名 #多行字串註釋符號:'''str''' #單行字元的註釋符號: 'str' or "str" variable_name = ‘xx’ #'''+ variable_name +'''方式獲取變數(只能在多行註釋下使用,非常不方便) name ='
Python之匯入模組的幾種方式和import本質
匯入模組方法 import module_xxx #匯入模組 import module1_ xxx, module2_ xxx #匯入多個模組 from moudule_ xxx import say_hello #調取模組的指定一個功能(函式或類) fro