в основном я создаю приложение с SwitUI, и у меня есть 4 модели данных, которые унаследованы от одного и того же протокола:
protocol Item: Codable
{
}
// Intializing Identity Data type which supports:
struct IdentityItem: Item, Identifiable {
var kind: String = "IdentityItem"
var id: String
let name: String
let middleName: String
let lastName: String
let gender: String
let birthDate: Date
let nationalID: String
}
// Intializing Note Data type which supports:
struct NoteItem: Item, Identifiable {
var kind: String = "NoteItem"
var id: String
let title: String
let date: Date
let textBlob: String
}
// Intializing Credit Card Data type which supports:
struct CreditCardItem: Item, Identifiable {
var kind: String = "CreditCardItem"
var id: String
let title: String
let bankName: String
let cardNumber: String
let cardHolderName: String
let expirationDate: Date
let cardPin: Int
let cardCvv: Int
}
// Intializing Login Credentials Data type which supports:
struct LoginItem: Item, Identifiable {
var kind: String = "LoginItem"
var id: String
let title: String
let username: String
let email: String
let password: String
let website: String
}
Допустим, у меня есть 3 различных элемента в массиве, например:
@State var itemArray: [Item]() = [creditItem1,noteItem2,loginItem3]
При создании списка этих элементов я не могу получить доступ к свойствам каждого элемента для создания пользовательских представлений с различными аргументами.
Как я могу создать список с пользовательскими представлениями из параметров каждого объекта itemArray?
При выполнении ForEach(itemArray, id: \.self){ item in }
для аргумента id появляется только .self
.
var itemArray: [Item] = [creditItem1,noteItem2,loginItem3]
14.05.2020