gpt4 book ai didi

ios - 在 NSUserDefault 中存储自定义对象

转载 作者:搜寻专家 更新时间:2023-11-01 06:06:06 24 4
gpt4 key购买 nike

在我的应用程序中,我执行了一些异步调用,这些调用返回了一些 json。我解析这些响应并填充一些结构,如下所示:

public struct StudentInfo {

let availableExams : Int?
let course : String?
let courseLength : Int?
let department : String?
let enrolledExams : Int?
let name : String?
let surname : String?
let registrationDate : String?
let studentClass : String?
let studentId : String?

init?(json: JSON) {
self.availableExams = "availableExams" <~~ json
self.course = "course" <~~ json
self.courseLength = "courseLength" <~~ json
self.department = "department" <~~ json
self.enrolledExams = "enrolledExams" <~~ json

let auxName: String? = "name" <~~ json
self.name = auxName?.firstCharacterUpperCase()

let auxSurname: String? = "surname" <~~ json
self.surname = auxSurname?.firstCharacterUpperCase()

self.surname?.firstCharacterUpperCase()
self.registrationDate = "registrationDate" <~~ json
self.studentClass = "studentClass" <~~ json
self.studentId = "studentID" <~~ json
}
}

我想使用 NSUserDefault 来存储这些对象,以便在没有互联网连接可用于执行对外部 Web 服务的 API 调用的情况下检索它们。这是一个可行的选择,还是有更简单的方法来做到这一点?

最佳答案

你可以使用这些函数来做你想做的事......

+ (id)getUserDefaultsForKey:(NSString *)key{
return [NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:key]];
}


+ (void)setUserDefaults:(id)value forKey:(NSString *)key{
[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:value] forKey:key];
[[NSUserDefaults standardUserDefaults] synchronize];
}

+ (void)deleteUserDefaultsForKey:(NSString *)key{
[[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
[[NSUserDefaults standardUserDefaults] synchronize];
}

尝试一次...但是您的自定义对象应该像下面的那些函数一样。

- (void)encodeWithCoder:(NSCoder *)coder
{
[super encodeWithCoder:coder];

[coder encodeObject:self.property forKey:@"property"];
}

- (instancetype)initWithCoder:(NSCoder *)coder {
if (self = [super initWithCoder:coder]) {
self.property = [coder decodeObjectForKey:@"property"];
}
return self;
}

在自定义对象中使用这 2 个函数,然后在用户默认值中使用上述函数保存该对象。

关于ios - 在 NSUserDefault 中存储自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37019534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com