ich nicht eine Zählung von einer einzigen Eigenschaft in einem asynchronen Abruf Keule kann, ich möchte alle expenseAmount für gegeben Summ async holen, sondern kann in Muster nicht anwendenswift 3.1 zusammenzufassen async Eigenschaften holen
meine Einheit:
extension Expense {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Expense> {
return NSFetchRequest<Expense>(entityName: "Expense");
}
@NSManaged public var expenseAmount: Double
@NSManaged public var expenseDate: NSDate?
@NSManaged public var expenseOwner: String?
@NSManaged public var expenseTag: String?
}
meiner Ansicht Controller ich diese func in meinem viewDidLoad nennen, wie ich die expenseAmount Werte für alle abgerufenen Entitäten wählen könnten und Summ?
func makeAsyncFetch() {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return
}
managedContext = appDelegate.persistentContainer.viewContext
// MARK: - async fetch request 2
let expenseFetch = NSFetchRequest<Expense>(entityName: kExpenseEntityName)
asyncFetchRequest = NSAsynchronousFetchRequest<Expense>(fetchRequest: expenseFetch) {
[unowned self] (result: NSAsynchronousFetchResult) in
guard let Expenses = result.finalResult else {
return
}
self.asyncExpensesArray = Expenses
self.expenseTableView.reloadData()
// self.testPrintForMyArray(arrayToCheck: self.asyncExpensesArray)
// self.batchUpdate()
}
// MARK: - async fetch request 3
do {
try managedContext.execute(asyncFetchRequest)
} catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}
}
Dank für Ihre Hilfe, fügte ich die Zeichenfolge nach self.expenseTableView.reloadData() und Arbeits der ist, aber könnten Sie die Verwendung von verringern klären? – biggreentree
'reduce' einen Startwert (von 0) erklärt, fügt alle Elemente im Array und gibt die Summe. – vadian