2016-08-24 31 views
4

我是Swift iOS開發的新產品。我想在本地存儲我的數據(名稱,image_path),而我的應用程序無法上載它(沒有互聯網連接等)。我已經在兩天之前開始了我的工作,但對於我的問題還沒有得到任何好的結果。我也曾在Realm和SQlite數據庫上工作過,但仍未取得適當的成功。請協助我,爲我提供適當的數據存儲(名稱,image_path)到本地數據庫的流程。 謝謝。如何使用iOS + Swift在本地存儲我的數據?

+0

@ZaidPathan我正在使用iOS + Swift,您的鏈接僅適用於iOS。 – AppleDroid

+0

在過去,我與Realm一起工作,這是很好的選擇,爲什麼你沒有發現它爲你工作? –

回答

14

NSUserDefaults的使用基本上有選擇本地存儲在iOS上:

  • Core Data
  • 第三方DB(Realm等)
  • NSKeyedArchiver/NSCoding
  • NSUserDefaults
  • Keychain Services

1(核心數據)是最好的,當你想堅持的大量數據以結構化的格式,例如:您的聯繫人/地址簿,音樂庫。

2(Realm /第三方數據庫)在類似的場景中很有用。核心數據可以有點密集/ turgid使用,這就是第三方抽象/替代方案存在的原因。

3(的NSKeyedArchiver)是一個相當有趣的選擇,它有效地讓你「凍結」的對象(即符合NSCoding協議),並將它們存儲到磁盤。如果您的數據被表示爲自定義對象模型,那就太好了。

4(NSUserDefaults)實際上只用於存儲微數據/狀態。想想像:高分整數,視圖層次結構中的位置,遊戲中的暱稱。

5(Keychain服務)只是如果你想存儲的圖像UIView的對象的話,還真核心數據或NSKeyArchives用於安全存儲憑據(用戶名/密碼)

可能是最好的。

查看更多信息:NSCodingCore DataKeychain

+0

非常感謝你@Woodstock – AppleDroid

+0

@AndroidME,很高興,任何問題都讓我知道。 – Woodstock

+3

不要在'NSUserDefaults'中存儲密碼,這是不安全的。它們應該存儲在鑰匙串中。 – dan

-2

用於本地存儲::

func getPrefNameInt(key: NSString,value: Int) ->Int{ 
    let prefDefault = NSUserDefaults.standardUserDefaults() 
    if let keyVal: AnyObject = prefDefault.objectForKey(key as String){ 
     return keyVal as! Int 
    }else{ 
     return value 
    } 
} 
func updatePrefInt(key: NSString,value: Int){ 
    let prefDefault = NSUserDefaults.standardUserDefaults() 
    prefDefault.setInteger(value, forKey: key as String) 
} 
+2

NSUserDefaults不是數據庫,只能用於......用戶默認值。但OP需要存儲數據(*圖像*)。 NSUserDefaults將是一個非常糟糕的解決方案。 – Moritz

相關問題