在 iOS 中创建 2D SwiftyJSON 数组
Posted
技术标签:
【中文标题】在 iOS 中创建 2D SwiftyJSON 数组【英文标题】:Creating 2D SwiftyJSON Array in iOS 【发布时间】:2017-02-27 18:40:29 【问题描述】:我正在创建一个自定义 ios 键盘并尝试创建一个函数,该函数将使用 JSON 字典来查看要使用的符号。
这是我的功能:
func switchSymbols(option: Int)
for view in self.view.subviews
if let button = view as? UIButton
let buttonTag = button.tag
if (buttonTag > 0 && buttonTag < 100)
if let text = symbolsDict?[buttonTag][option].stringValue
print(symbolsDict)
button.setTitle(text, for: .normal)
这里是创建查找字典的工厂函数:
func symbolsDictFactory() -> JSON
var dict:JSON = [:]
dict[1][0] = "1"
dict[1][1] = "["
dict[2][0] = "2"
dict[2][1] = "]"
print(dict)
return dict
不幸的是,第二个函数生成了一个空白 JSON 数组。
有点失落。任何帮助表示赞赏。提前致谢。
【问题讨论】:
失败是什么意思??崩溃、错误、警告,这是怎么回事?? 更新了描述错误的答案。 我选择 JSON 是因为使用它更容易创建字典。而且我认为字典很适合这种查找表。请您举例说明模型对象、结构或类如何更好地适应这种情况。 【参考方案1】:我建议不要将 JSON 用于应用程序中的数据和模型。你的内部模型应该是强类型的。
事实上,JSON 是真正的[String: Any]
类型,这不是你需要的,因为按钮标签和选项值都是整数。您在代码中描述的是[Int: [Int: String]]
。创建一个函数来返回您的符号查找表没有任何问题。但是,由于表是常量,因此像这样将其设置为包含类的属性可能会更简单。
class View: UIViewController
private let titleForButton = [
1: [0: "1", 1: "["],
2: [0: "2", 1: "]"],
// ...
99: [0: "?", 1: "?"]
]
func switchSymbols(option: Int)
for view in self.view.subviews
if let button = view as? UIButton
if let title = titleForButton[button.tag]?[option]
button.setTitle(title, for: .normal)
此外,您对 button.tag 在 [1..
【讨论】:
以上是关于在 iOS 中创建 2D SwiftyJSON 数组的主要内容,如果未能解决你的问题,请参考以下文章
在 Gamemaker 标准 v1.4 中,是不是可以在 2D 中创建 Bridge Builder 物理和关节?