Я загружаю данные в две сущности Core Data при запуске приложения.Нет проблем с загрузкой обычных атрибутов, но я не могу понять, как установить отношения в Swift 5.
Из двух соответствующих сущностей CellData имеет единственное отношение «один к одному» с селектором (каждая строка селектора)может иметь много строк CellData).
Мой класс одной модели загружает данные для двух объектов ...
class LoadData
{
init ()
{
используя цикл for, который сначала определяет данные объекта Selector для средства выбора ...
for count in 0...3
{
var text = "Value not found"
...
switch count
{
case 0:
text = "Masculine"
case 1:
text = "Neutral"
case 2:
text = "Feminine"
case 3:
text = "Plural"
default:
text = "Value unassigned"
}
..., а затем вызывает метод (ниже) для добавления данных к объекту "средство выбора".
loadSelector(text: text, sortOrder: sortOrder, ...)
}
... Внутри того же init есть цикл for для определения CellData
for count in 0...51
{
var text = "Cell text not found"
var sortOrder: Int32 = 0
...
sortOrder = Int32(count)
...
switch count
{
case 0:
text = "Blank"
color1 = subject
colorRangeLoc1 = 0
colorRangeLen1 = Int32(text.count)
...
case 8:
text = "Der Mann"
color1 = article
...
case 9:
text = "Die Frau"
color1 = article
color2 = subject
colorRangeLoc1 = 0
colorRangeLoc2 = 4
colorRangeLen1 = 3
colorRangeLen2 = 4
underlineRangeLoc1 = 1
underlineRangeLen1 = 2
...
..., который также передает данные из каждого цикла в метод загрузки.
loadCellData(text: text, ...)
}
}
func loadSelector(text: String, sortOrder: Int32, color1: String?, color2: String?, color3: String?, colorRangeLoc1: Int32?, colorRangeLen1: Int32?, colorRangeLoc2: Int32?, colorRangeLen2: Int32?, colorRangeLoc3: Int32?, colorRangeLen3: Int32?)
{
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let entry: Selector = NSEntityDescription.insertNewObject(forEntityName: "Selector", into: context) as! Selector
entry.text = text
entry.sortOrder = sortOrder
do { try context.save() }
catch let error as NSError
{ print("Could not save. \(error), \(error.userInfo)") }
}
Это, вероятно, не лучший подход, но я работаю над загрузкой данных через plist.
Что я не могу понять, так это как создать связь в CellData,Случай 8, например, нуждается в связи с данными Selector, где .text = 'Masculine', а CellData, случай 9, должен быть связан с записью Selector .text = 'Feminine'.
Должен ли яповторно выбрать записи селектора - до или внутри - второй цикл for, а затем назначить в каждом случае?Я пробовал это, но безуспешно - если возможно, покажите код, и где код должен быть.Большая часть информации, кажется, находится в Obj-c.Swift 5 был бы потрясающим!