我正在尝试构建一个IOS应用程序,让我将学校科目输入一系列文本框。所有输入的科目都将进入阵列;我将从中制作一个字符串。然后我将使用该字符串创建一个包含主题列表的QR码...(无论如何,这是计划!)。
以下是我目前用于创建将用于创建QR代码的字符串的代码: //插座
@IBOutlet var moduleOne: UITextField!
@IBOutlet var moduleTwo: UITextField!
@IBOutlet var moduleThree: UITextField!
@IBOutlet var moduleFour: UITextField!
//Actions
@IBAction func goButton(sender: AnyObject) {
let subjectOne = moduleOne.text!
let subjectTwo = moduleTwo.text!
let subjectThree = moduleThree.text!
let subjectFour = moduleFour.text!
let newArray: [String] = ["\(subjectOne)", "\(subjectTwo)", " (subjectThree)", "\(subjectFour)"]
let arrayString = newArray.joinWithSeparator(" ")
//print(arrayString)
}
我的目标是能够扫描二维码并将之前输入的每个主题放入各自的标签中...这就是我被困住的地方!
是否可以从QR码读取数据然后使用特定部件?即如果我说“主题一”为“数学”,我可以确保在阅读二维码后“数学”进入我的“主题一”标签吗?基本上可以在QR码中查找特定数据吗?
道歉,如果我不是很清楚,这很难解释!
答案 0 :(得分:0)
绝对!你要做的是指定一种“协议”(不是一个快速protocol
而是一组“规则”)。
您现在所做的只是将值组合成一个字符串,用空格分隔。这带来了一些限制:
我反而建议您从URL中获取一些灵感。请考虑以下示例:
let qrInput = "subjectOne=maths&subjectTwo=music&fall="
let parsed: [String:String] = qrInput.componentsSeparatedByString("&").reduce([:], combine: { (dict, keyValue) in
var dict = dict
let components = keyValue.componentsSeparatedByString("=")
if components.count > 1 {
dict[components[0]] = components[1]
}
return dict
})
该示例将返回如下字典:["subjectTwo": "music", "subjectOne": "maths", "fall": ""]
此解决方案更安全。只需执行moduleOne.text = dict["subjectTwo"]
或其他操作即可在扫描时填充UI。