使用来自选择器选择的数据将条目添加到 parse.com
Using data from picker selections to add entry to parse.com
正在尝试将数据从选择器输入到 parse.com。此代码目前可以将事件输入 parse.com,但您可以看到我使用的是 "string of char",而不是从数据选取器中提取选择。当我尝试使用变量名称即 "events" 时,给出 "use of unknown identifier." 关于应该使用什么来准确调用要解析的选定数据的任何建议?
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)
}
}
如果您真的尝试使用 "events",则事件仅在更新标签内限定范围内,不会在 viewDidLoad 中获知,这可能解释了错误消息。我相信你不是那个意思。在委托函数 didSelectRow
中,根据组件选取选择器值,并将它们存储在 class 定义下方定义的变量中,以便 viewDidLoad
可以访问它
您可能希望选择器在 2 组件选择器的每个选择器中显示 eventChoices 中的字符串。用户旋转以获得 events
和 selectedTime
的选择。选择器行是 Int。因此,您将使用 eventChoices
为键 category
和 duration
选择正确的字符串(就像您在 updateLabel 中所做的那样,但如果您使用行和组件参数,则采用紧凑格式) .
代码片段看起来像这样。我猜你的意图。
将变量定义放在 class EventFormViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate{
下方
var events = ""
var selectedTime = ""
在 updatelabel()
下面的 didSelectRow
中插入:
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
中加载。然后你会用微调器显示视图。在用户选择选项后,可能会有一个按钮来启动传输以进行解析。
希望这对您有所帮助。
正在尝试将数据从选择器输入到 parse.com。此代码目前可以将事件输入 parse.com,但您可以看到我使用的是 "string of char",而不是从数据选取器中提取选择。当我尝试使用变量名称即 "events" 时,给出 "use of unknown identifier." 关于应该使用什么来准确调用要解析的选定数据的任何建议?
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)
}
}
如果您真的尝试使用 "events",则事件仅在更新标签内限定范围内,不会在 viewDidLoad 中获知,这可能解释了错误消息。我相信你不是那个意思。在委托函数 didSelectRow
中,根据组件选取选择器值,并将它们存储在 class 定义下方定义的变量中,以便 viewDidLoad
您可能希望选择器在 2 组件选择器的每个选择器中显示 eventChoices 中的字符串。用户旋转以获得 events
和 selectedTime
的选择。选择器行是 Int。因此,您将使用 eventChoices
为键 category
和 duration
选择正确的字符串(就像您在 updateLabel 中所做的那样,但如果您使用行和组件参数,则采用紧凑格式) .
代码片段看起来像这样。我猜你的意图。
将变量定义放在 class EventFormViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate{
var events = ""
var selectedTime = ""
在 updatelabel()
下面的 didSelectRow
中插入:
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
中加载。然后你会用微调器显示视图。在用户选择选项后,可能会有一个按钮来启动传输以进行解析。
希望这对您有所帮助。