【发布时间】:2019-11-18 06:11:08
【问题描述】:
我有一个简单的struct,我将以此为基础。现在它有一个字段,一个 Int。
struct Card: CustomStringConvertible {
let value: Int
init(value: Int) {
self.value = value
}
var description: String {
return "\(String(value))"
}
}
如果我这样做,我会得到卡片来打印它的价值
let c = Card(value: 1)
print(c)
现在,如果我将一组卡片放入 CardController 中,如下所示:
class CardController: ObservableObject {
@Published
var cards: [Card] = [
Card(value: 1),
Card(value: 2),
Card(value: 3)
]
Picker(selection: $selectedCardValue, label: Text("Choose a card")) {
ForEach(0..<cardController.cards.count) {
Text(self.cardController.cards[$0])
}
}
Text("You selected \(selectedCardValue)")
我会收到错误 Initializer 'init(_:)' requires that 'Card' conform to StringProtocol。我不确定为什么会收到此错误。如果我只是将cards 更改为[String] 类型和值["1", "2", "3"],则代码可以正常工作。
知道这里有什么问题吗?
【问题讨论】:
标签: swiftui