Отфильтровал массив данных Core Data по одному значению, нужно теперь этот же массив отфильтровать по другому значению. Чтобы в конечном итоге получился массив по двум отфильтрованным значениям. Вот код который пока удалось написать
func filterLvlAndClassSpells(lvl: Int, classSp: String) ->[SpellsClassData]?{
let context1 = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let fetchRequest1:NSFetchRequest<SpellsClassData> = SpellsClassData.fetchRequest()
var spellsFiltered1:[SpellsClassData]? = nil //массив типа NSManageObject
var spellsFiltered2:[SpellsClassData]? = nil
let predicate1 = NSPredicate(format: "lvlSpellsData contains[c] %@" , "\(lvl)")
fetchRequest1.predicate = predicate1
do {
spellsFiltered1 = try context1.fetch(fetchRequest1)
// тут предполагаю фильтрацию массива по другому значению
for i in 0...spellsFiltered1!.count {
let vel = spellsFiltered1?[i].value(forKey: "classSpellsData") as! String
if vel.contains(classSp){
spellsFiltered2?.append(spellsFiltered1![i])
}
}
return spellsFiltered2
}catch{
return spellsFiltered1
}
}
Вылетает ошибка в строке let vel = spellsFiltered1?[i].value(forKey: “classSpellsData”) as! String Thread 1: Fatal error: Index out of range