我尝试将array of strings
设置为UserDefaults
但我的应用在此时被冻结。设置其他类型的数据(例如String
和Bool
)没有问题。我已阅读this topic,其他人在其他地方发帖说明可能存在问题,具体取决于我们要存储的数据类型。就我而言,我只想存储一串字符串[String]
。我的项目中有Objective-C(我可以成功保存字符串数组)和Swift类。
Objective-C类(AppDelegate.m)
{
NSUserDefaults *appSettings; /// declared in header file
}
appSettings = [NSUserDefaults standardUserDefaults];
NSString *xibHome = @"Home";
[appSettings setObject:xibHome forKey:kNibHome];
NSArray *array = [[NSArray alloc] initWithObjects:@"Test", nil];
[appSettings setObject:array forKey:@"test"]; ---> works fine
[SetupAppSettings appSettingsWithSettings:appSettings];
SetupAppSettings.swift文件
class SetupAppSettings: NSObject {
@objc class func appSettings(settings:UserDefaults) {
let swiftArray = ["Test"]
settings.set(swiftArray, forKey: "test") ---> app crashes (no message error, just frozen at launchtime)
....
}
}
看起来这个问题存在于我的Swift代码中。但我无法弄清楚为什么[String]
类型的对象无法存储。
有人可以帮我解决一下吗?
EDITED
以下是暂停应用程序后推荐的流程的两个屏幕截图,如果有帮助的话: