我的数组如何计算0?

时间:2015-02-23 06:25:25

标签: arrays swift nsarray uipickerview nsxmlparser

我有一个UIPickerView。我有一个空白数组,直到我的代码解析XML请求。所以当它发生时,我希望它用该数据填充数组。以下是我如何设置所有内容。

var pickerData = []

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return pickerData.count
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
        return pickerData[row] as String
    }

func parser(parser: NSXMLParser!, foundCharacters string: String!) {
        if (seperatedSoap == "pickerDataString") {
            if (currentElementName == "name") {
                pickerData = [string]
                println(pickerData)
            }

        }

我显然没有粘贴每一段代码,但你应该能够理解这里发生了什么。现在我的控制台在解析后将其打印为我的pickerData。

(
    "2x1 on recv-small"
)
(
    "2x1 on ship-small"
)
(
    "3x2 on avs-1"
)
(
    "2.25x2 on photo-large"
)
(
    "2.25x2 on recv-large"
)
(
    "2.25x2 on repair-large"
)
(
    "2x3 on wireless-1"
)
(
    "4x6 on ship-shiplbl"
)
(
    "4x6 on recv-shiplbl"
)
(
    "4x6 on wireless-shiplbl"
)

这正是我想要的,但它没有出现在我的UIPickerView中,因为它显然是空白的?我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

首先你应该使用

pickerData.append(string)

因为你的赋值总是将数组设置为包含一个(最后一个)元素。

然后你可能需要拨打reloadComponent

答案 1 :(得分:0)

追加数组加法赋值运算符(+=)

pickerData += [string]

请参阅Swift Collection Types