Boa noite!
Estou com um pequeno problema, ao fazer o fetchedObjects
ele retorna nill, já analisei todo o código e não consigo encontrar o erro.
Obs - 1: Meus objeto Product é um pouco complexo eu estou usando só dois parâmetros para testar, mas deixei todos como opcionais
Obs - 2: O app não encerra e nem lança erro, apenas retorna nill
//
// ProductService.swift
// Tarv
//
// Created by Ramires Moreira on 6/15/18.
// Copyright © 2018 Adacemy. All rights reserved.
//
import UIKit
import CoreData
class ProductService {
var context : NSManagedObjectContext {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
return appDelegate.persistentContainer.viewContext
}
var fetchResult : NSFetchedResultsController<Product> {
let fetchRequest:NSFetchRequest<Product> = Product.fetchRequest()
let sort = NSSortDescriptor(key: "name", ascending: true)
fetchRequest.sortDescriptors = [sort]
let controller = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
return controller
}
func getProducts( completion : @escaping ( [Product]? )->Void ){
for _ in 0...5 {
save()
}
do {
try fetchResult.performFetch()
if let list = fetchResult.fetchedObjects { // retorna nill
completion(list)
}else{
completion(nil)
}
} catch {
print(error.localizedDescription)
completion(nil)
}
}
@discardableResult
func save() -> Bool {
let p = Product(context: context)
p.id = 1
p.name = "Blusa"
p.price = 24.89
do {
context.insert(p)
try context.save()
return true
}catch{
print(error)
return false
}
}
}