swift 数组修改后不保存

问题描述 投票:0回答:1

所以我有 2 个函数,第一个获取推文类型的数组,第二个获取广告。在第二个函数中,我尝试做的就是将广告附加到第一个函数的数组末尾,但是当我尝试将发布的 var“new”设置为等于结果数组时,它不起作用,而是“new”var 仍然等于第一个 func 中的原始数组。不知何故,我无法坚持第二个功能修改。 视图模型

import Foundation

class FeedViewModel: ObservableObject{
    @Published var new = [Tweet]()    
    let service = TweetService()
    let userService = UserService()
    
    init(){
        fetchNew()
        getAd(self.new)
    }
    
    func fetchNew(){
        service.fetchNew { tweets in
            self.new = tweets
            
            for i in 0 ..< tweets.count {
                let uid = tweets[i].uid
                self.userService.fetchUser(withUid: uid) { user in
                    self.new[i].user = user
                }
            }
        }
    }
    func getAd(){
    service.fetchAd { ads in
        var firstAd = ads[0]
        self.userService.fetchUser(withUid: firstAd.uid) { user in
            firstAd.user = user
        }
        self.new.append(firstAd)
    }
}

查看

                    ScrollView {
                        LazyVStack {
                            ForEach(viewModel.new) { tweet in
                                Button {
                                    //
                                } label: {
                                    someView(tweet: tweet
                                }
                            }
                     }
swift xcode
1个回答
0
投票

不是真正的答案所以我稍后将其删除但是代码不能以清晰的方式写在注释中

有什么理由不能将

getAd
简化为

func getAd(){
    service.fetchAd { ads in
        var firstAd = ads[0]
        self.userService.fetchUser(withUid: firstAd.uid) { user in
            firstAd.user = user
        }
        self.new.append(firstAd)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.