0
이 이상한 문제가 있습니다. 나는 사용자 정의 클래스 객체를 NSUserDefaults
에 저장하고 데이터를 가져 오는 동안 객체의 변수 int
에 대해 nil
을 얻습니다. 다음은 사용자 정의 클래스iOS : NSUserDefaults에서 사용자 정의 객체의 int 변수가 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://nshipster.com/nscoding/이
당신은 이러한 기능을 모두 필요합니다 여기
는 NSCoding을 준수에 대한 안내입니다 아카이버 '. http://stackoverflow.com/questions/2315948/how-to-store-custom-objects-in-nsuserdefaults – Putz1103@ Putz1103 나는 이미 그 해결책을 보았지만 당신이 그것을 지적 할 때까지 시도하지 않았다. 효과가 있습니다. 감사! –