I am facing an error while implementing protocol.
I have declared a protocol as below in a file named as 'TransactionListViewViewModelItem.swift
'. Below is what I have in this file
protocol TransactionListViewViewModelItemProtocol: Comparable {
var transactionBookingDate: Date { get }
var transactionPartnerDisplayName: String { get }
}
struct TransactionListViewViewModelItem: TransactionListViewViewModelItemProtocol {
static func < (lhs: TransactionListViewViewModelItem, rhs: TransactionListViewViewModelItem) -> Bool {
return lhs.transactionBookingDate < rhs.transactionBookingDate
}
static func == (lhs: TransactionListViewViewModelItem, rhs: TransactionListViewViewModelItem) -> Bool {
return lhs.transactionBookingDate == rhs.transactionBookingDate
}
var transactionBookingDate: Date {
transactionModel.transactionDetail.bookingDate.getTransactionDate()
}
var transactionPartnerDisplayName: String {
transactionModel.partnerDisplayName
}
private let transactionModel: Transaction
// MARK: - init
init(transaction: Transaction) {
transactionModel = transaction
}
}
Now When I tried to use above in my viewmodel class TransactionListViewViewModel.swift
as below
protocol TransactionListViewViewModelProtocol {
init(fileName: String)
var numberOfRows: Int { get }
func transactionItem(at indexPath: IndexPath) -> TransactionListViewViewModelItemProtocol
}
class TransactionListViewViewModel: TransactionListViewViewModelProtocol {
private var arrayOfTransactions: [TransactionListViewViewModelItemProtocol] = []
// MARK: - init
required init(fileName: String) {
fetchAllTransactionsModel(from: fileName)
}
/*
rest code....
*/
}
I got error as Use of protocol 'TransactionListViewViewModelItemProtocol' as a type must be written 'any TransactionListViewViewModelItemProtocol'
Please guide me what am I doing wrong.