【问题标题】:ios swift parse: pickerview use array or dictionariesios swift parse:pickerview 使用数组或字典
【发布时间】:2015-02-25 14:20:29
【问题描述】:

我正在从 parse.com 中选择一些简单的数据来填充 PickerView。

我有一个“objectId”和一个“name”。我想将这些数据填充到我的 PickerView 中。

首先我将数据加载到一个数组中,效果很好... PickerView 以正确的方式显示数据。

但由于我想保存从 pickerView 中选择的内容以进行解析,因此我需要所选语言项的 objectId - 在本例中为 objectId。

当我使用字典时:

var languagePickerValues = [String : String]()

// within the query loop
self.languagePickerValues[object.objectId] = name

我在这里遇到错误:

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
        return languagePickerValues[row]
    }
    func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int){
        selectedLanguage.text = languagePickerValues[row]
        self.view.endEditing(true)
    }

因为这些函数尝试使用 Int 作为数字键访问数组,而我在使用字典时没有。

出于显示目的,我可以使用数组... 要将数据保存到 API,我需要 objectId...

正确的做法是什么?

【问题讨论】:

  • 我完全不明白 - 只是你处理解析......对不起
  • 基本上:从解析(table1)中提取数据以填充 PickerView 并获取所选项目以将其 objectId 保存回解析(table2)的正确方法是什么。这是否使它更透明?

标签: ios arrays swift dictionary parse-platform


【解决方案1】:

object.objectId 是什么?如果它是 int 或其他数字类型,则尝试:

self.languagePickerValues["\(object.objectId)"] = name

因为字典键是字符串,所以只需用他的:

"\(object.objectId)"

【讨论】:

  • object.objectId 是一个字符串(奇怪,我知道,但这是 parse.com)
  • 我可以将 titleForRow 行函数更改为:titleForRow row: String 但是如何在函数 didSelectRow 中获取选定的键和值?出于数据库原因,我需要字典键和用于显示目的的字典值...
猜你喜欢
  • 2011-11-07
  • 2018-09-26
  • 1970-01-01
  • 1970-01-01
  • 2015-05-10
  • 2021-04-19
  • 2012-01-18
  • 1970-01-01
  • 2012-03-20
相关资源
最近更新 更多