该对象具有简单的结构:
struct Movie {
var movieName : String
var movieType: Array<String>
}
var parentMovieArray = [Movie]()
lazy var displayMovieArray = [Movie]()
func getMovies() {
// get movies from API and populate parentMovieArray
}
func filterMovies() {
// segmented control setup where the index filters for movie type
}
如何检查parentMovieType数组的Movie对象中是否包含字符串,以便可以将该Movie对象附加到displayMovieArray?
我正在尝试类似的操作,但是在Apple文档方面却苦苦挣扎:
if parentMovieArray.contains(where: {$0.movieType.contains(self.day!)}) {
displayArray.append($0)
}
答案 0 :(得分:1)
使用r-cran-timedate
创建要附加的项目数组,然后使用filter()
将它们附加到另一个数组:
append(contentsOf:)
您可以在一行中完成此操作:
let filtered = parentMovieArray.filter { $0.movieType.contains(self.day!) }
displayMovieArray.append(contentsOf: filtered)
但这不是必须的。
答案 1 :(得分:0)
我不是敏捷专家,但是听起来您正在寻找如今已在大多数高级语言中实现的过滤器方法,请查看此链接以实现敏捷:
https://developer.apple.com/documentation/swift/sequence/3018365-filter
这将基于谓词创建一个新数组