我想看看用户选择了什么,例如书名及其相关章节
我做了这个
struct bookChpt {
var book:[String] = []
var chapter:[[Int]] = []
}
let chptSelected = [bookChpt(book:bookArr,chapter:chptArr)]
var bookArr:[String] = []
var chptArr:[[Int]] = []
我有这个 viewDidLoad()
if let bTitle = result.value(forKey: "bookTitle") as? String
{
bookArr.append(bTitle)
}
if let cNo = result.value(forKey: "chpNo") as? [Int]
{
chptArr.append(cNO)
}
print(chptSelected)
我得到这个
bookChpt(book:[“ Hobbit”,“ LOTR”],章节:[[3,5],4])
但我喜欢看这个
[“霍比特人”,3,5],[“ LOTR”,4]
有两种可能性。您可以向该结构添加一个函数,以所需的方式显示其内容:
struct BookChapter {
var book:[String] = []
var chapter:[[Int]] = []
func display() -> [[Any]] {
var output = [[Any]]()
for i in 0..<book.count {
output.append([book[i], chapter[i]])
}
return output
}
}
或者,您可以修改结构的结构以将书和章节包含为元组:
struct BookChapter {
var book:[(String, [Int])]
}
再进一步,在任何您看到循环的地方(例如在上面的显示功能中),您也可以考虑使用map
来实现相同的目的:
func display() -> Any {
return book.enumerated().map { $0.element + " " + chapter[$0.offset].description }
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句