使用选择器选择中的数据将条目添加到parse.com

时间:2015-02-06 18:10:29

标签: ios swift parse-platform

尝试将选择器中的数据输入到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)
        }

    }

1 个答案:

答案 0 :(得分:0)

如果您真的尝试使用“事件”,那么事件仅限于更新标签内部,并且在viewDidLoad中不会知道,这可能会解释错误消息。我相信你不是那个意思。在委托函数didSelectRow中,根据组件选取选择器值,并将它们存储在类定义下面定义的变量中,以便viewDidLoad

可以访问它。

您可能希望拾取器在2组件选择器的每个选取器中的eventChoices中显示字符串。用户进行旋转以获得eventsselectedTime的选择。选择器行是Int。因此,您可以使用eventChoices为密钥categoryduration选择正确的字符串(正如您在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

请注意使用类似字典的格式,我觉得很方便。

使用变量eventscategory创建eventLabel.text而不是updateLabel()

我想你可能想重新设计你打算如何做这一切。通常,拣货员会加载到viedDidLoad。然后,您将使用微调器显示视图。在用户选择了选项后,可能会有一个按钮来启动转移以进行解析。

希望这有帮助。