Post

Replies

Boosts

Views

Activity

Reply to NSBatchInsertRequest iOS17 problems
var detailsDictionaryValue: [String: Any] { var value: [String: Any] = [:] let details = self.transactionDetails value[#keyPath(MOTransactionDetails.id)] = self.id value[#keyPath(MOTransactionDetails.sourceSystemTransactionRef)] = details.sourceSystemTransactionRef value[#keyPath(MOTransactionDetails.transactionDate)] = details.transactionDate value[#keyPath(MOTransactionDetails.accountAmountValue)] = Int64(details.accountAmount.amount) value[#keyPath(MOTransactionDetails.accountAmountCurrencyCode)] = details.accountAmount.currency.currencyCode if let commission = details.commissionAmount { value[#keyPath(MOTransactionDetails.commissionAmountValue)] = Int64(commission.amount) value[#keyPath(MOTransactionDetails.commissionAmountCurrencyCode)] = commission.currency.currencyCode } else { value[#keyPath(MOTransactionDetails.commissionAmountValue)] = NSNull() value[#keyPath(MOTransactionDetails.commissionAmountCurrencyCode)] = NSNull() } if let balanceAfter = details.balanceAfter { value[#keyPath(MOTransactionDetails.balanceAfterValue)] = Int64(balanceAfter.amount) value[#keyPath(MOTransactionDetails.balanceAfterCurrencyCode)] = balanceAfter.currency.currencyCode } else { value[#keyPath(MOTransactionDetails.balanceAfterValue)] = NSNull() value[#keyPath(MOTransactionDetails.balanceAfterCurrencyCode)] = NSNull() } if let ownAmount = details.ownAmount { value[#keyPath(MOTransactionDetails.ownAmountValue)] = Int64(ownAmount.amount) value[#keyPath(MOTransactionDetails.ownAmountCurrencyCode)] = ownAmount.currency.currencyCode } else { value[#keyPath(MOTransactionDetails.ownAmountValue)] = NSNull() value[#keyPath(MOTransactionDetails.ownAmountCurrencyCode)] = NSNull() } if let cashback = details.cashback { value[#keyPath(MOTransactionDetails.cashbackValue)] = Int64(cashback.amount) value[#keyPath(MOTransactionDetails.cashbackCurrencyCode)] = cashback.currency.currencyCode } else { value[#keyPath(MOTransactionDetails.cashbackValue)] = NSNull() value[#keyPath(MOTransactionDetails.cashbackCurrencyCode)] = NSNull() } if let exchangeRate = details.exchangeRate { value[#keyPath(MOTransactionDetails.exchangeRate)] = exchangeRate } else { value[#keyPath(MOTransactionDetails.exchangeRate)] = NSNull() } if let comment = details.comment { value[#keyPath(MOTransactionDetails.comment)] = comment } else { value[#keyPath(MOTransactionDetails.comment)] = NSNull() } if let structuredReference = details.structuredReference { value[#keyPath(MOTransactionDetails.structuredReference)] = structuredReference } else { value[#keyPath(MOTransactionDetails.structuredReference)] = NSNull() } // requisite let requisite = details.cardAccountRequisite value[#keyPath(MOTransactionDetails.accountNumber)] = requisite.accountNumber value[#keyPath(MOTransactionDetails.accountType)] = requisite.accountType.rawValue if let accountOwnerName = requisite.accountOwnerName { value[#keyPath(MOTransactionDetails.accountOwnerName)] = accountOwnerName } else { value[#keyPath(MOTransactionDetails.accountOwnerName)] = NSNull() } if let cardNumber = requisite.cardNumber { value[#keyPath(MOTransactionDetails.cardNumber)] = cardNumber } else { value[#keyPath(MOTransactionDetails.cardNumber)] = NSNull() } if let embossingName = requisite.embossingName { value[#keyPath(MOTransactionDetails.embossingName)] = embossingName } else { value[#keyPath(MOTransactionDetails.embossingName)] = NSNull() } return value } // This solution solves the problem! On iOS 16 there is no such problem, everything works correctly.
Sep ’23
Reply to NSBatchInsertRequest iOS17 problems
extension MOTransactionDetails { @nonobjc public class func fetchRequest() -> NSFetchRequest<MOTransactionDetails> { return NSFetchRequest<MOTransactionDetails>(entityName: "MOTransactionDetails") } @NSManaged public var accountAmountCurrencyCode: String? @NSManaged public var accountAmountValue: Int64 @NSManaged public var accountNumber: String? @NSManaged public var accountOwnerName: String? @NSManaged public var accountType: String? @NSManaged public var balanceAfterCurrencyCode: String? @NSManaged public var balanceAfterValue: Int64 @NSManaged public var cardNumber: String? @NSManaged public var cashbackCurrencyCode: String? @NSManaged public var cashbackValue: Int64 @NSManaged public var comment: String? @NSManaged public var commissionAmountCurrencyCode: String? @NSManaged public var commissionAmountValue: Int64 @NSManaged public var embossingName: String? @NSManaged public var exchangeRate: Double @NSManaged public var id: String? @NSManaged public var ownAmountCurrencyCode: String? @NSManaged public var ownAmountValue: Int64 @NSManaged public var sourceSystemTransactionRef: String? @NSManaged public var structuredReference: String? @NSManaged public var transactionDate: Date? @NSManaged public var actions: NSSet? @NSManaged public var transactionItem: MOTransactionItem? }
Sep ’23