您好我正在尝试向String
添加一些Array
,然后将其值存储为UserDefaults
,这是我的代码:
func addStored(urlString:String) {
//Add URL to array and save it
downloadedURLArray.append(urlString)
UserDefaults.standard.set(downloadedURLArray, forKey: "storedURL")
UserDefaults.standard.synchronize()
var array = UserDefaults.standard.array(forKey: "storedURL") as? [String] ?? [String]()
array = array.sorted { $0 < $1 }
print(array.description)
}
我正在尝试以升序或降序检索其数据:
array = array.sorted { $0 < $1 }
但编译器给我错误甚至随机!值例如我将这些项添加到Array:
一个
乙
ç
检索到的数据是:
乙
ç
甲
有什么问题?我是以正确的方式对数组进行排序的?
答案 0 :(得分:0)
试试这个 - &gt;。 array = array.sorted {$ 0.localizedCaseInsensitiveCompare($ 1)== NSComparisonResult.OrderedAscending
答案 1 :(得分:0)
不要在同一个函数内调用用户默认值。从另一个函数或ViewDidLoad
调用它。
工作实例:
var downloadedURLArray = [String]()
override func viewDidLoad() {
addStored(urlString: "Kegham")
addStored(urlString: "Sevan")
addStored(urlString: "Ines")
var array = UserDefaults.standard.array(forKey: "storedURL") as? [String] ?? [String]()
array = array.reversed()
print(array.description) //output
}
func addStored(urlString:String) {
//Add URL to array and save it
downloadedURLArray.append(urlString)
UserDefaults.standard.set(downloadedURLArray, forKey: "storedURL")
}
输出为:[“Ines”,“Sevan”,“Kegham”]