簡體   English   中英

如何獲取核心數據匯總Swift3

[英]How do i get sum core data Swift3

import Foundation
import CoreData
import UIKit

class CoreDataManager5: NSObject {

    private class func getContext() -> NSManagedObjectContext{
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        return appDelegate.persistentContainer.viewContext
    }
    class func fetchObj() -> [foodItem]{
        var array = [foodItem]()
        let fetchRequest: NSFetchRequest<FoodS5N5> = FoodS5N5.fetchRequest()
        do{
            let fetchResults = try getContext().fetch(fetchRequest)
            print(fetchResults)

            for food in fetchResults{
                let foods = foodItem(foodCalorie5: food.foodCalorie5!)
                array.append(foods)

                var addFood:[String] = []
                addFood.append(foods.foodCalorie5!)
                print(addFood)

                let sumArray:[String] = addFood
                let sumArrayofInt: [Int] = sumArray.map{Int($0) ?? 0}
                let sum = sumArrayofInt.reduce(0,+)
                print("Food calorie = \(sum)")

            }
        }catch{
            //show error
        }
        return array
    }
}

struct foodItem {
    var foodCalorie5:String?
    init() {
        foodCalorie5 = ""
    }
    init(foodCalorie5:String){
        self.foodCalorie5 = foodCalorie5
    }
}

截圖

您需要計算for循環外的sum

var array = [foodItem]()
for food in fetchResults{
    let foods = foodItem(foodCalorie5: food.foodCalorie5!)
    array.append(foods)
}
let calories = array.flatMap { Int($0.foodCalorie5!) }
let sum = calories.reduce(0, +)
print("Food calorie = \(sum)")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM