Tôi đang sử dụng một bộ dữ liệu để lưu trữ một cái gì đó như thế này.Lưu một bộ dữ liệu vào NSUserDefaults
var accessLavels: (hasInventoryAccess: Bool, hasPayrolAccess: Bool)
accessLavels = (hasInventoryAccess: true, hasPayrolAccess: false)
Bây giờ tôi muốn lưu nó trong NSUserDefaults
.
NSUserDefaults.standardUserDefaults().setValue(accessLavels, forKey: "AccessLevelKey")
NSUserDefaults.standardUserDefaults().synchronize()
Nhưng tôi nhận được lỗi sau.
Loại '(hasInventoryAccess: Bool, hasPayrolAccess: Bool)' không phù hợp với giao thức 'AnyObject'
Làm thế nào tôi có thể giải quyết vấn đề này? Nếu nó không thể, sau đó bất kỳ đề xuất khác để lưu một tuple được chào đón.
Cảm ơn bạn.
Là một sang một bên , gọi 'synchronise' trên' NSUserDefaults' gần như không bao giờ cần thiết và gọi nó là "chỉ trong trường hợp" không được khuyến cáo bởi Apple. –
NSUserDefaults chỉ hỗ trợ các loại danh sách thuộc tính: NSData, NSString, NSNumber, NSDate, NSArray hoặc NSDictionary. Nếu bạn muốn lưu trữ bất kỳ loại đối tượng nào khác, bạn có thể lưu trữ nó để tạo một thể hiện của NSData. – Bobby