Функция для извлечения сущностей работает только при вызове из AppDelegate - PullRequest
0 голосов
/ 04 мая 2019

Я написал функцию, которая должна извлекать все объекты из определенного объекта и затем помещать все виды одного атрибута в массив. Странно, моя функция возвращает значения только при вызове из AppDelegate? Всякий раз, когда я пытаюсь вызвать его откуда-то еще, он просто возвращает пустой массив

import Foundation
import CoreData
import UIKit

func fetchAllFractions() -> [String] {

    let appDelegate = UIApplication.shared.delegate as? AppDelegate
    let context = appDelegate!.persistentContainer.viewContext
    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Deputies")

    var fractions: [String] = []
    do {
        let results = try context.fetch(fetchRequest) as! [Deputies] //Deputies is the Entity
        print(results.count)
        for deputy in results {
            //check if the Array of fractions already containts the deputies fraction
            if fractions.contains(deputy.fraction!) {
            } else {
                //if not, add it to the array
                fractions.append(deputy.fraction!)
            }
        }
    } catch let error {
        print("Error Fetching Fractions", error)
    }
    print(fractions)
    //return array of fractions
    return fractions
}
...