SWIFT字符串?没有名为 'element' 的成员
SWIFT String? does not have a member named 'element'
我想知道如何从数组中填充我的标签
func metaDataUpdated(metaData : NSString){
var listItems: NSArray = [metaData.componentsSeparatedByString(";")]
if ([listItems.count] > 0){
println([listItems.objectAtIndex(0)])
titleSong.text = [listItems.objectAtIndex(0)]
}
}
我真的不知道如何将数组转换为字符串。
将您的项目放入 "\()"
。
例如:
titleSong.text = "\([listItems.objectAtIndex(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
}
}
现在更好地使用 Swift 类型和对象:数组而不是 NSArray,字典而不是 NSDictionary 等
func metaDataUpdated(metaData : NSString) {
var listItems = metaData.componentsSeparatedByString(";")
if listItems.count > 0 {
print(listItems[0])
titleSong.text = listItems[0]
}
}
这里 componentsSeparatedByString
returns 一个字符串数组:[String]
。然后我们使用简单的索引下标来检索它的第一个值。
注意:我想您是在尝试改编来自 Objective-C 的代码,因为您的示例到处都是 []
...
直接转换为Swift:
func metaDataUpdated(metaData : String) {
let listItems = metaData.componentsSeparatedByString(";")
if listItems.count > 0 {
print(listItems[0])
titleSong.text = listItems[0]
}
}
更好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
}
}
我想知道如何从数组中填充我的标签
func metaDataUpdated(metaData : NSString){
var listItems: NSArray = [metaData.componentsSeparatedByString(";")]
if ([listItems.count] > 0){
println([listItems.objectAtIndex(0)])
titleSong.text = [listItems.objectAtIndex(0)]
}
}
我真的不知道如何将数组转换为字符串。
将您的项目放入 "\()"
。
例如:
titleSong.text = "\([listItems.objectAtIndex(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
}
}
现在更好地使用 Swift 类型和对象:数组而不是 NSArray,字典而不是 NSDictionary 等
func metaDataUpdated(metaData : NSString) {
var listItems = metaData.componentsSeparatedByString(";")
if listItems.count > 0 {
print(listItems[0])
titleSong.text = listItems[0]
}
}
这里 componentsSeparatedByString
returns 一个字符串数组:[String]
。然后我们使用简单的索引下标来检索它的第一个值。
注意:我想您是在尝试改编来自 Objective-C 的代码,因为您的示例到处都是 []
...
直接转换为Swift:
func metaDataUpdated(metaData : String) {
let listItems = metaData.componentsSeparatedByString(";")
if listItems.count > 0 {
print(listItems[0])
titleSong.text = listItems[0]
}
}
更好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
}
}