您好,在上面的那些图片中,我想使用通过使用视图模型在无数个视图中查看图像的列表。我认为的问题是我没有使用视图模型第19行中的好用语。由于我使用的措辞,它说“ Catego”没有成员“ im”,但实际上列表中有一个名为im的成员。
viewModel:
import Foundation
import FirebaseAuth
import Firebase
import FirebaseStorage
import SwiftUI
class CameraViewModel: ObservableObject {
@Published var caption: String = ""
var catt : [Catego] = categoData
@Published var image: Image = Image(systemName: IMAGE_PHOTO)
@Published var isLoading = false
var imageData: Data = Data()
var errorString = ""
@Published var showAlert: Bool = false
@Published var showImagePicker: Bool = false
func sharePost(completed: @escaping() -> Void, onError: @escaping(_ errorMessage: String) -> Void) {
if !caption.isEmpty && !imageData.isEmpty {
//AuthService.signupUser(username: username, email: email, password: password, imageData: imageData, onSuccess: completed, onError: onError)
Api.Post.uploadPost(caption: caption, imageData: imageData,catt: catt, onSuccess: completed, onError: onError)
} else {
showAlert = true
errorString = "Please fill in all fields"
}
}
}
列表:
struct Catego: Codable,Hashable, Identifiable{
var id = UUID()
var im : String
var title : String
}
var categoData = [
Catego(im: (IMAGE_CATEGORIE_BAG),title: "Plastic Bag"),
Catego(im: (IMAGE_CATEGORIE_BOTTLE), title: "Plastic Bottle"),
Catego(im: (IMAGE_CATEGORIE_FILTER), title: "Cigarette Filter"),
Catego(im : (IMAGE_CATEGORIE_CAN), title: "Aluminium Can"),
Catego(im: (IMAGE_CATEGORIE_BAGC),title : "Paper Bag"),
Catego(im: (IMAGE_CATEGORIE_CAP), title: "Bottle Cap")
]
存在问题的行:
Image(cameraViewModel.catt.im)
答案 0 :(得分:0)
var catt : [Catego] = categoData
这是一个列表,您正在作为对象进行访问。您应该使用要显示其数据的索引,如下所示:
let index = 0 // Modify this as per your needs.
Image(cameraViewModel.catt[index].im)
也就是说,如果您在列表中使用它,则可以像这样遍历数组:
List(cameraViewModel.catt) { catItem in
Image(catItem.im)
}