2017-02-09 8 views
0

вот мой код: импорт UIKit импорт CoreDataSwift CoreData в UICollectionView

class WeekController: UICollectionViewController, UICollectionViewDelegateFlowLayout { 

func getContext() -> NSManagedObjectContext { 
    let appDelegate = UIApplication.shared.delegate as! AppDelegate 
    return appDelegate.persistentContainer.viewContext 
} 





var dayPlan: [DayPlan] = { 

    var mondayDayPlan = DayPlan() 
    var mondayDayPlanWorkout : Workout? 
    mondayDayPlan.dayNameLabel = mondayDayPlanWorkout?.mondayNameCD 
    mondayDayPlan.codeNameLabel = mondayDayPlanWorkout?.mondayCodeNameCD 
    mondayDayPlan.task01 = mondayDayPlanWorkout?.mondayTask01 
    mondayDayPlan.task02 = mondayDayPlanWorkout?.mondayTask02 
    mondayDayPlan.task03 = mondayDayPlanWorkout?.mondayTask03 
    mondayDayPlan.task04 = mondayDayPlanWorkout?.mondayTask04 
    mondayDayPlan.task05 = mondayDayPlanWorkout?.mondayTask05 
    mondayDayPlan.dayIconImage = #imageLiteral(resourceName: "biceps") 



    var tuesdayDayPlan = DayPlan() 
    tuesdayDayPlan.dayNameLabel = "Tuesday" 
    tuesdayDayPlan.codeNameLabel = "pojdme na ty nohy" 
    tuesdayDayPlan.task01 = "5x1 Legs" 
    tuesdayDayPlan.task02 = "5x2 Legs" 
    tuesdayDayPlan.task03 = "5x3 Legs" 
    tuesdayDayPlan.task04 = "5x4 Legs" 
    tuesdayDayPlan.task05 = "5x5 Legs" 
    tuesdayDayPlan.dayIconImage = #imageLiteral(resourceName: "ass") 
return [mondayDayPlan, tuesdayDayPlan] 

у меня есть эта CoreData Модель:

Entity: **Workout** 
with this Attributes: 
mondayCodeNameCD 
mondayFocusCD 
mondayNameCD 
mondayTask01 
mondayTask02 
mondayTask03 
mondayTask04 
mondayTask05 
mondayTask06 
more, more, more... 

tuesdayDayPlan жестко закодировано (работает хорошо), но mondayDayPlan это с CoreData (показывает nothink) ... Нет ошибки, но понедельник пуста, Почему? Как получить данные из CoreData в этом случае? спасибо ...

+0

Я не вижу нигде, где вы делаете какую-либо выборку или сохраняете в своем постоянном магазине. Я имею в виду, что вы показываете функцию для получения 'managedObjectContext', но вы даже не используете ее в зависимости от того, что вы показываете. Ваш постоянный магазин не может магически определить, что сохранить и извлечь. Кроме того, для вашего 'mondayDayPlan' вы объявляете его как необязательный объект« Workout », но вы его никогда не инициализируете ... тогда вы устанавливаете каждое свойство для этого объекта« DayPlan »на что-то из« mondayDayPlan », но« mondayDayPlan » 'is' nil' – Pierce

+0

Вам нужно получить объект из основных данных. Я вижу, что вы создали новый объект, используя инициализацию класса. –

ответ

0

звучит так, как будто вы не сохраняете данные правильно для основных данных. Вы можете легко это проверить, открыв: ~/Библиотека/Поддержка приложений/iPhone Simulator/Пользователь/Приложения/

Сортировка по «Дата изменения», чтобы найти приложение, которое вы только что создали. найдите файл .sqlite. проверьте, действительно ли имеются данные, которые должны быть там.

Обязательно напишите «appDelegate.saveContext()» после каждого добавления NSManagedObject к вашим основным данным.

Удачи вам!