Я написал две отдельные функции fetchRecords
и displayRecords
, написанные в Appdelegate
Класс. fetchRecords
функция будет извлекать все записи из объекта и работает нормально. Функция displayRecords
принимает возвращаемое значение от fetchRecords
и распечатывает все записи по одному.
У меня есть один контроллер вида, который вызывает эти две функции для выполнения желаемой задачи. Моя проблема result.count
в displayRecords
показывает общее количество записей, доступных в выбранных записях. При печати записей по одному значение равно нулю.Основные данные - NSManagedObject, возвращающий нуль
override func viewDidLoad() {
super.viewDidLoad()
let fetchedRecords = AppDelegate().fetchRecords(fromEntity: "Dashboard")
AppDelegate().displayRecords(fromFetchedRecords: fetchedRecords)
}
А вот это fetchRecords
и displayRecords
функции, написанные в AppDelegate класса
func fetchRecords(fromEntity entity:String) -> Array<AnyObject> {
var fetchedResult:Array<AnyObject> = []
let fetchRequest = NSFetchRequest()
let entityDescription = NSEntityDescription.entityForName(entity, inManagedObjectContext: self.managedObjectContext)!
fetchRequest.entity = entityDescription
do{
fetchedResult = try self.managedObjectContext.executeFetchRequest(fetchRequest)
}catch{
let fetchError = error as NSError?
print(fetchError!)
}
return fetchedResult
}
func displayRecords(fromFetchedRecords result:Array<AnyObject>) {
print("Total records:\(result.count)")
if (result.count > 0) {
for data in result {
let dashboard = data as! NSManagedObject
print("Value: \(dashboard.valueForKey("count"))")
}
}
}
Добавление моей модели данных здесь
поделюсь код для вставки данных также.
func saveDashBoardData(dictionary: Dictionary<String, String>) {
print(NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask))
//Create Manage Object
let entityDescription: NSEntityDescription = NSEntityDescription.entityForName("Dashboard", inManagedObjectContext: self.managedObjectContext)!
for data in dictionary {
let dashboardObject = Dashboard(entity: entityDescription,insertIntoManagedObjectContext: self.managedObjectContext)
dashboardObject.type = data.0
dashboardObject.count = data.1
do {
try self.managedObjectContext.save()
print("Data saved succesfully")
}
catch {
print(error)
}
}
}
Можете ли вы показать мне свою CoreData модель в вашем проекте @sindhu JA –
Я разделил модель данных в вопросе. Пожалуйста, найдите –
Я не мог получить то, что вы пытаетесь сказать @vadian –