簡體   English   中英

線程 1:EXC_BAD_ACCESS (code=2, address=0x7ffee0948ff8) 在 SwiftUI 中啟動應用程序時

[英]Thread 1: EXC_BAD_ACCESS (code=2, address=0x7ffee0948ff8) while launch app in SwiftUI

我對項目有問題,項目崩潰,控制台中沒有顯示任何內容。 線程 1:EXC_BAD_ACCESS (code=2, address=0x7ffee0948ff8) 我已經搜索並嘗試了很多方法來解決這個問題。

class getPhotosData: ObservableObject {
    @Published var Images : [[Photos]] = []
    @Published var noresults = false
    
    @ObservedObject var RandomImages = getPhotosData()
    
    init() {
        updateData()
    }
    
    func updateData() {
        self.noresults = false
        
        let key = ""
        let url = "https://api.unsplash.com/photos/random/?client_id=\(key)"
        
        let session = URLSession(configuration: .default)
        
        session.dataTask(with: URL(string: url)!) { data, _, err in
            if err != nil {
                print((err?.localizedDescription)!)
                return
            }
            
            do {
                let json = try JSONDecoder().decode([Photos].self, from: data!)
                for i in stride(from: 0, to: json.count, by: 2) {
                    
                    var ArrayData: [Photos] = []
                    
                    print(json)
                    for j in i..<i + 2 {
                        if j < json.count {
                            ArrayData.append(json[j])
                        }
                    }
                    DispatchQueue.main.async {
                        self.Images.append(ArrayData)
                    }
                }
            }
            catch {
                print(error.localizedDescription)
            }
        }
        .resume()
    }

這是我的代碼,崩潰發生在這一行:@Published var Images: [[Photos]] = []

我已經刪除了私鑰

您可以嘗試讓DispatchQueue.main.async {部分脫離外部 for 循環嗎

var all: [Photos] = []
for i in stride(from: 0, to: json.count, by: 2) {  
    var arrayData: [Photos] = [] 
    print(json)
    for j in i..<i + 2 {
        if j < json.count {
            arrayData.append(json[j])
        }
    }
    all.append(arrayData)
}
DispatchQueue.main.async {
   self.images = all
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM