我將一組字符串(Set<String>
)存儲到NSUserDefaults.standardUserDefaults()
中,並且在取回對象時,它將返回爲字符串數組而不是集合。NSUserDefaults返回swift數組[String]而不是集合<String>
此塊的工作,因爲我重新創建數組作爲NSSet中
if let products = NSUserDefaults.standardUserDefaults().objectForKey("products") as? [String] {
// recreate the array into a NSSet/Set
if let productSet = NSSet(array: products) as? Set<NSObject> {
// now it's a set
}
}
然而,它不可能直接獲取對象的快捷設置:
if let products = NSUserDefaults.standardUserDefaults().objectForKey("products") as? Set<String> {
// will not cast into Set<String>
}
我認爲NSUserDefaults
內部設置爲數組嗎?有沒有辦法接收作爲一個集合而不是一個數組的項目?
根據文檔,用戶默認對象必須是實例或NSData的,的NSString,的NSNumber,NSDate的,NSArray中,或NSDictionary中的組合。你是如何存儲* Set *的? –
將NSData中的任何內容和檢索類型轉換爲最初轉換後的任何內容 –
'NSUserDefaults.standardUserDefaults().setObject(Set([「a」,「b」]),forKey:「products」)'throws a運行時異常。沒有看到你如何*設置*默認值是不可能給(有幫助)的答案。 –