0
私はこの奇妙な問題があります。 NSUserDefaults
にカスタムクラスオブジェクトを保存していますが、データを取得している間にオブジェクトの変数int
がnil
になります。以下は、カスタムクラスiOS:カスタムオブジェクトのint変数がNSUserDefaultsでnilを返します
class User {
var name: String?
var user_id: Int?
var account_id: Int?
var location: String?
}
私はのようにオブジェクトを保存してい
、
let defaults = NSUserDefaults.standardUserDefaults()
var data = NSKeyedArchiver.archivedDataWithRootObject([user]) // I can see the int values for the user objects here
defaults.setObject(data, forKey: "all_users")
などのデータを取得する、
let defaults = NSUserDefaults.standardUserDefaults()
let data = defaults.dataForKey("all_users")
var users = [Users]()
if data != nil {
let userData = NSKeyedUnarchiver.unarchiveObjectWithData(data!) as! [Users]
for usr in userData {
print("\(usr.name!)") // Prints the name
print("\(usr.user_id!)") // Nil value here
users.append(usr)
}
}
私はこの現象の理由について全く見当がつかないです。
をあなたのクラスは 'あなたがあなた自身を記述する必要がありNSCoding' – dan
'に準拠する必要がありますアーカイバ '。 http://stackoverflow.com/questions/2315948/how-to-store-custom-objects-in-nsuserdefaults – Putz1103
@ Putz1103私は既にその解決策を見てきましたが、あなたがここでそれを指摘するまで試してみませんでした。それは働いている。ありがとう! –