Вам нужно определить Album.init(post: Post, post2: [PostById])
, если вы хотите вызвать этот инициализатор:
init(post: Post, post2: [PostById]) {
self.post = post
self.post2 = post2
... rest of your initialization
}
Обратите внимание, что использование здесь mainArray
указывает на серьезную проблему проектирования. Представления являются структурами и могут быть созданы или уничтожены системой в любое время. Их создание никогда не должно создавать побочных эффектов, таких как изменение глобальной переменной.
Из вашего описания mainArray
является просто свойством альбома:
import SwiftUI
struct Album: View {
var post:Post?
var post2:[PostById] = []
var mainArray:[PostById]
@ObservedObject var model = PostListViewModel()
@ObservedObject var model2 = PostListViewByIdModel()
init(post: Post, post2: [PostById]) {
self.post = post
self.post2 = post2
if let posty = post {
mainArray = self.post2.filter { i in i.album_id == posty.id }
} else {
mainArray = []
}
}
}