SWIFT字符串?没有名为'element'的成员

时间:2015-10-12 14:57:18

标签: arrays string swift label

我想知道如何从数组中填充我的标签

    func metaDataUpdated(metaData : NSString){
    var listItems: NSArray = [metaData.componentsSeparatedByString(";")]
    if ([listItems.count] > 0){
        println([listItems.objectAtIndex(0)])
       titleSong.text = [listItems.objectAtIndex(0)]
       }
    }

我真的不知道如何将数组转换为字符串。

4 个答案:

答案 0 :(得分:1)

直接转换为Swift:

func metaDataUpdated(metaData : String) {
    let listItems = metaData.componentsSeparatedByString(";")
    if listItems.count > 0 {
        print(listItems[0])
        titleSong.text = listItems[0]
    }
}

Nicer Swift:

func metaDataUpdated(metaData : String) {
    let listItems = metaData.componentsSeparatedByString(";")
    if let first = listItems.first {
        print(first)
        titleSong.text = first
    }
}

更好的Swift,没有使用Foundation而且没有需要将每个组件用“;”分隔的功能,但只有第一个(推荐):

func metaDataUpdated(metaData : String) {
    if let index = metaData.characters.indexOf(";") {
        let first = metaData[metaData.startIndex ..< index]
        print(first)
        titleSong.text = first
    }
}

答案 1 :(得分:0)

您无法将NSArray分配给NSString,因此您需要将第一个索引的值转换为字符串

更改此

        titleSong.text = [listItems.objectAtIndex(0)]

      titleSong.text = "\(listItems.objectAtIndex(0))"

      titleSong.text = listItems[0] as! String 

并将此行更改为([listItems.count > 0])(listItems.count > 0)

您的代码将如下所示: 请注意,这不是obj-c,因此请删除所有[]

func metaDataUpdated(metaData : NSString){
    var listItems: NSArray = metaData.componentsSeparatedByString(";")
    if (listItems.count > 0)
      {
        println(listItems.objectAtIndex(0))
       titleSong.text = listItems.objectAtIndex(0)  as! String
       }
    }

答案 2 :(得分:0)

现在更好地使用Swift类型和对象:Array而不是NSArray,Dictionary而不是NSDictionary等。

func metaDataUpdated(metaData : NSString) {
    var listItems = metaData.componentsSeparatedByString(";")
    if listItems.count > 0 {
        print(listItems[0])
        titleSong.text = listItems[0]
    }
}

此处componentsSeparatedByString返回字符串数组:[String]。然后我们使用简单的索引下标来检索它的第一个值。

注意:我想您正在尝试调整Objective-C中的代码,因为您的示例在[]到处都有{...}

答案 3 :(得分:-1)

将您的字符串项目放入"\\()"

例如:

titleSong.text = "\\([listItems.objectAtIndex(0)])"

不确定您是否需要[]括号