我想知道如何从数组中填充我的标签
func metaDataUpdated(metaData : NSString){
var listItems: NSArray = [metaData.componentsSeparatedByString(";")]
if ([listItems.count] > 0){
println([listItems.objectAtIndex(0)])
titleSong.text = [listItems.objectAtIndex(0)]
}
}
我真的不知道如何将数组转换为字符串。
答案 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)])"
不确定您是否需要[]
括号