【发布时间】:2025-12-02 20:55:01
【问题描述】:
我正在尝试保存一个包含 30 张图片的 NSDictionary。我正在调用将字典保存在 ViewController 的 viewDidDisappear 中的方法。问题是用户界面在保存时冻结。这是一个小的延迟,不到一秒,但有点烦人。你有什么想法让它更流畅吗?也许我应该异步保存字典,也许在一个块中,但我不知道如何使用它们。
这是我的储蓄和获取方法:
+ (NSDictionary*)getProgramImages{
NSString *path = [DataManager getProgramImagesFileDirectory];
NSDictionary *programImages = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
return programImages;
}
+ (void)saveProgramImages:(NSDictionary*)programImages{
NSString *path = [DataManager getProgramImagesFileDirectory];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:programImages];
[data writeToFile:path options:NSDataWritingAtomic error:nil];
}
非常感谢您的帮助!
鲍里斯
【问题讨论】:
-
问题是你在主线程上调用保存函数,如果 UI 太重,它会冻结 UI。在此处阅读有关线程的更多信息:developer.apple.com/library/mac/documentation/Cocoa/Conceptual/…
标签: ios uiimage nskeyedarchiver datapersistance