私はstring, [int], bool
条件に応じて配列値を格納する方法は?
var books:[String] = ["Hobbit","LOTR","Fellowship"]
var chaptersToRead:[[Int]] = [[1],[1,3],[2,3]]
var read:[Bool] = [false,true,true]
私はすべての書籍の詳細を見ることができるように機能display()
を持つ型の変数を持っている個別
func display() -> [[Any]] {
var output = [[Any]]()
for i in 0..<books.count {
output.append([books[i], chaptersToRead[i], read[i]])
}
return output
}
if chaptersToRead = 1
、
var booksAssigned:[String] = ["Hobbit","LOTR"]
var readStatus:[Bool] = [false,true]
Iは、上記の結果bを得ることを試みたが、次のように以下の作業をしていて、動作していない。私は間違って何をしていますか?
var booksAssigned:[String] = []
var readStatus:[Bool] = []
for (index, books) in display().enumerated()
{
if chaptersToRead.joined().contains(1)
{
//I am getting signal SIGABRT error here
booksAssigned = books as! [String]
}
}
for (index, status) in display().enumerated()
{
if chaptersToRead.joined().contains(1)
{
//I am getting signal SIGABRT error here
readStatus = status as! [Bool]
}
}
これは不適切なデータ構造です。代わりに構造体の配列を使用する必要があります。 – Hamish
構造体をデータ型として使用してみてください:struct Book { let name:String var chapters:[Int] var isRead:Bool } –
構造体を使用する必要がありますか? – Coder221