设置字符串数组时,Swift 4 User Defaults崩溃

时间:2018-01-30 14:40:05

标签: objective-c arrays swift4 userdefaults

我尝试将array of strings设置为UserDefaults但我的应用在此时被冻结。设置其他类型的数据(例如StringBool)没有问题。我已阅读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

以下是暂停应用程序后推荐的流程的两个屏幕截图,如果有帮助的话:

enter image description here

enter image description here

0 个答案:

没有答案