Arrays 从字符数组中删除可选字符-Swift 3
如何使用Swift 3删除可选字符并转换为自然字符数组 这是我的代码:Arrays 从字符数组中删除可选字符-Swift 3,arrays,swift,database,optional,Arrays,Swift,Database,Optional,如何使用Swift 3删除可选字符并转换为自然字符数组 这是我的代码: for data in listdata { // listdata is (Database) has a variable (ans) let tar = data.ans.characters.map({$0}) lblLabel.text = String(describing: tar) } print(lblLabel.text) 我的输出: 可选([\'A\',\'B\',\'C\',\
for data in listdata { // listdata is (Database) has a variable (ans)
let tar = data.ans.characters.map({$0})
lblLabel.text = String(describing: tar)
}
print(lblLabel.text)
我的输出:
可选([\'A\',\'B\',\'C\',\'D\'”)
我想转换我的输出并在lblLalbel
中添加文本,而不使用如下可选和数组:
A B C D
如何做到这一点?标签的text
属性的类型为String?
这一事实决定了标签的“可选”属性。打印时需要安全地打开包装;使用nil合并操作符?
效果很好
要仅获取由空格分隔的数组项,请使用映射{String($0)}
将字符转换为[String]
,然后使用连接(分隔符:“”)
将元素连接在一起,形成最终的字符串
:
for data in listdata { // listdata is (Database) has a variable (ans)
let tar = data.ans.characters.map { String($0) }
// Swift 4: let tar = data.ans.map(String.init)
lblLabel.text = tar.joined(separator: " ")
}
print(lblLabel.text ?? "") // "A B C D"
print(lblLabel.text!)
它与print一起工作,但在targetLabel.text=String(description:tar)
在模拟器中获取可选文本,我如何才能像打印标签文本一样呢@LUK2302什么类型的tar
?不要使用String(description:)
初始化字符串,因为它只使用变量的.description
属性。@DávidPásztor,不完全是。比如说,您需要类的名称YourViewController
,如果使用self.description()
,您将获得ProjectTargetName.YourViewController
。但是如果您使用String(description:self)
您将获得YourViewController
。现在在我的lblLabel
中添加文本:[“A”、“B”、“C”、“D”]
如何删除标签文本中的数组@Alekseypotapovw当我写String.init
get me error:“init”的用法不明确,当我写String.init()时,get me error:“No”String.Type.init“候选者产生预期的上下文结果类型”(Character)throws->@vacawamahmm。String.init适合我。尝试映射{String($0)}。谢谢,现在它可以工作了,但是我有4个标签,我只想添加每个标签一个字符。我怎么做@vacawama@AmeenMK停止动态创建新问题/要求。你应该从这个问题开始。因为这会改变整个数组和标签处理。好的,抱歉@luk2302