尝试将选择器中的数据输入到parse.com。此代码目前用于将事件输入到parse.com,但您可以看到我使用"字符串char"而不是从数据选择器中拉出选择。当我尝试使用变量名称即"事件" ,给出"使用未知标识符。"有关应该使用什么来准确调用此选定数据进行解析的任何建议吗?
import UIKit
var eventChoices = [
["5","10","15","30","45","60","90","120","150","180"],
["Hospital Committee","Peer Review","EHR Improvement","Quality Improvement","Business Development"],]
class EventFormViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate{
@IBOutlet weak var eventPicker: UIPickerView!
@IBOutlet weak var eventLabel: UILabel!
func updateLabel(){
let selectedTime = eventChoices[0][eventPicker.selectedRowInComponent(0)]
let events = eventChoices[1][eventPicker.selectedRowInComponent(1)]
eventLabel.text = "Chose \(events) for \(selectedTime) mins"
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
updateLabel()
}
override func viewDidLoad() {
super.viewDidLoad()
var user = PFUser.currentUser()
var event = PFObject(className: "event")
event.setObject("EHR", forKey: "category")
event.setObject(8, forKey: "duration")
event.setObject("Training", forKey: "comment")
event.setObject(user, forKey: "user")
event.saveInBackgroundWithBlock {
(success: Bool!, error: NSError!) -> Void in
if success == true {
println("event created")
}
else {
println(error)
}
}
答案 0 :(得分:0)
如果您真的尝试使用“事件”,那么事件仅限于更新标签内部,并且在viewDidLoad中不会知道,这可能会解释错误消息。我相信你不是那个意思。在委托函数didSelectRow
中,根据组件选取选择器值,并将它们存储在类定义下面定义的变量中,以便viewDidLoad
您可能希望拾取器在2组件选择器的每个选取器中的eventChoices中显示字符串。用户进行旋转以获得events
和selectedTime
的选择。选择器行是Int。因此,您可以使用eventChoices
为密钥category
和duration
选择正确的字符串(正如您在updateLabel中所做的那样,但如果您使用行和组件参数,则使用紧凑格式)
代码片段看起来像这样。我猜你的意图。
将变量定义放在class EventFormViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate{
var events = ""
var selectedTime = ""
在didSelectRow
下方updatelabel()
插入:
if component == 0 {
selectedTime = eventChoices[0][row]
} else if component == 1 {
events = eventChoices[1][row]
}
在viewDidLoad
插入:
event["category"] = events
event["duration"] = selectedTime
请注意使用类似字典的格式,我觉得很方便。
使用变量events
和category
创建eventLabel.text
而不是updateLabel()
我想你可能想重新设计你打算如何做这一切。通常,拣货员会加载到viedDidLoad
。然后,您将使用微调器显示视图。在用户选择了选项后,可能会有一个按钮来启动转移以进行解析。
希望这有帮助。