Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在swift中的NSUserdefaults中保存和读取阵列数组?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我需要创建一个数组来添加这样的格式,如Swift中的字典:[“key1”:“value1”,“key2”:“value2”] 当我尝试使用NSUserDefaults保存它一切都是正确的,但当读取NSUserDefaults与键崩溃。我的var obj需要什么类型的数据? let def = NSUserDefaults.standardUserDefaults() var key = "keyS
我需要创建一个数组来添加这样的格式,如Swift中的字典:[“key1”:“value1”,“key2”:“value2”]

当我尝试使用NSUserDefaults保存它一切都是正确的,但当读取NSUserDefaults与键崩溃。我的var obj需要什么类型的数据?

let def = NSUserDefaults.standardUserDefaults()
var key = "keySave"
var element: AnyObject!

var array1: [AnyObject!] = []
array1.append(["key1": "val1","key2": "val2"])
array1.append(["key1": "val1","key2": "val2"])

//save
var saveString : [AnyObject!]
saveString = array1
var defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(saveString,forKey: key)
defaults.synchronize()

//read
var obj: [AnyObject!] = []
if(obj != nil){
    print("size: ")
    print(obj.count) //vary long value confused..
    element = obj[0]  //crash
    print(element.objectForKey("key1"))
}
这个问题是“array of array”,但我想大多数人可能来这里只是想知道如何将数组保存到UserDefaults。对于那些人我会添加一些常见的例子。

更新为Swift 3

字符串数组

保存数组

let array = ["horse","cow","camel","sheep","goat"]

let defaults = UserDefaults.standard
defaults.set(array,forKey: "SavedStringArray")

检索数

let defaults = UserDefaults.standard
let myarray = defaults.StringArray(forKey: "SavedStringArray") ?? [String]()

Int数组

保存数组

let array = [15,33,36,723,77,4]

let defaults = UserDefaults.standard
defaults.set(array,forKey: "SavedIntArray")

检索数

let defaults = UserDefaults.standard
let array = defaults.array(forKey: "SavedIntArray")  as? [Int] ?? [Int]()

Bool阵列

保存数组

let array = [true,true,false,false]

let defaults = UserDefaults.standard
defaults.set(array,forKey: "SavedBoolArray")

检索数

let defaults = UserDefaults.standard
let array = defaults.array(forKey: "SavedBoolArray")  as? [Bool] ?? [Bool]()

日期数组

保存数组

let array = [Date(),Date(),Date()]

let defaults = UserDefaults.standard
defaults.set(array,forKey: "SavedDateArray")

检索数

let defaults = UserDefaults.standard
let array = defaults.array(forKey: "SavedDateArray")  as? [Date] ?? [Date]()

对象数组

自定义对象(因此对象数组)需要更多的工作来保存到UserDefaults。请参阅以下链接,了解如何执行此操作。

> Save custom objects into NSUserDefaults
> Docs for saving color to UserDefaults
> Attempt to set a non-property-list object as an NSUserDefaults

笔记

> nil coalescing运算符(??)允许您返回保存的数组或空数组而不会崩溃。这意味着如果对象返回nil,那么跟随??将使用运算符。>您可以看到,Int,Bool和Date的基本设置是一样的。我也用Double测试了。据我所知,任何可以保存在属性列表中的内容都可以这样工作。

大佬总结

以上是大佬教程为你收集整理的如何在swift中的NSUserdefaults中保存和读取阵列数组?全部内容,希望文章能够帮你解决如何在swift中的NSUserdefaults中保存和读取阵列数组?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。