Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 设置字符串数组时,Swift 4用户默认值崩溃_Objective C_Arrays_Swift4_Userdefaults - Fatal编程技术网

Objective c 设置字符串数组时,Swift 4用户默认值崩溃

Objective c 设置字符串数组时,Swift 4用户默认值崩溃,objective-c,arrays,swift4,userdefaults,Objective C,Arrays,Swift4,Userdefaults,我试图将字符串数组设置为UserDefaults,但我的应用程序在这一点上被冻结了。我可以设置其他类型的数据(如String和Bool)。我已经读过,其他人也在其他地方发帖说,根据我们想要存储的数据类型,这可能会有问题。在我的例子中,我只想存储字符串数组[String]。我的项目中既有Objective-C(我可以成功地保存字符串数组),也有Swift类 Objective-C类(AppDelegate.m) SetupAppSettings.swift文件 class SetupAppSett

我试图将
字符串数组
设置为
UserDefaults
,但我的应用程序在这一点上被冻结了。我可以设置其他类型的数据(如
String
Bool
)。我已经读过,其他人也在其他地方发帖说,根据我们想要存储的数据类型,这可能会有问题。在我的例子中,我只想存储字符串数组
[String]
。我的项目中既有Objective-C(我可以成功地保存字符串数组),也有Swift类

Objective-C类(AppDelegate.m)

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]
类型对象

谁能帮我整理一下吗

已编辑

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


冻结和崩溃不是一回事。在冻结状态下,尝试在调试器中暂停应用程序并检查主线程上发生的情况。我不确定如何才能了解出了什么问题。我用截图编辑了我的问题,但我不知道它如何帮助我理解这个问题。是否有其他线程正在进行处理,可能导致您的主线程等待?隐藏的堆栈框架中是否有任何东西表明主线程正在等待自己?(如果我把你的代码复制到操场上,它似乎做了正确的事情,所以我猜这是周围发生的其他事情。)
UserDefaults.standard.set(swiftArray,forKey:“test”)
是你直接在Swift中设置它的方式。使用此语法构建您的方法。您还可以
打印(数组(UserDefaults.standard.dictionaryRepresentation().keys))
打印到控制台以验证是否已设置。
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)
    ....
    }
}