Swift iOS NSDictionary setValue崩溃 – 但为什么呢?

Swift iOS NSDictionary setValue崩溃 – 但为什么呢?,第1张

概述我有这个代码(从另一种语言移植,因此有一些不同的命名约定,但现在请忍受这个) var FDefaultsList: NSDictionary = [String:String]();let TmpKey: String = TmpKeyValue[0];let TmpValue: String = TmpKeyValue[1]; if (TmpKey != "") && (TmpVal 我有这个代码(从另一种语言移植,因此有一些不同的命名约定,但现在请忍受这个)

var FDefaultsList: NSDictionary = [String:String]();let TmpKey: String = Tmpkeyvalue[0];let TmpValue: String = Tmpkeyvalue[1];    if (TmpKey != "") && (TmpValue != "") {  //let TmpAnyObjectValue: AnyObject? = TmpValue;  //FDefaultsList.setValue(TmpAnyObjectValue,forKey: TmpKey);  FDefaultsList.setValue(TmpValue,forKey: TmpKey);}

但是,无论我使用哪个setValue变体,对setValue的调用都会抛出一个错误(据我所知无意义)并退出app(Xcode编辑器被带到AppDelegate类:UIResponder,UIApplicationDelegate)

我猜我使用NSDictionary错了?我试图在文本文件中读取每行是key = value字符串

解决方法 您应该声明一个实际的NSMutableDictionary而不是转换为NSDictionary.

并且您可以使用比setValue(实际上应该是setobject)更简单的下标:

var FDefaultsList = NSMutableDictionary()let TmpKey: String = "a"let TmpValue: String = "b"if TmpKey != "" && TmpValue != "" {    FDefaultsList[TmpValue] = TmpKey}

一个更“Swifty”的版本可能是:

var defaultsList = [String:String]()let tmpKey = "a"let tmpValue = "b"if !tmpKey.isEmpty && !tmpValue.isEmpty {    defaultsList[tmpValue] = tmpKey}
总结

以上是内存溢出为你收集整理的Swift iOS NSDictionary setValue崩溃 – 但为什么呢?全部内容,希望文章能够帮你解决Swift iOS NSDictionary setValue崩溃 – 但为什么呢?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1007232.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存