我有 Tema、Oppgave 和 Fag 类(class)。一名 Fag 拥有多个 Oppgave,一名 Tema 拥有多个 Oppgave。然而,Tema 中的每个 Oppgave 都有相同的 Fag。
我只想显示其 Oppgaves 具有特定 Fag 的 Temas。
这些是我的相关模型:
class Oppgave: NSManagedObject {
@NSManaged var isArchived: NSNumber
@NSManaged var isComplete: NSNumber
@NSManaged var lflink: String
@NSManaged var link: String
@NSManaged var nokkel: String
@NSManaged var oppgaveNr: NSNumber
@NSManaged var sett: Sett
@NSManaged var tema: Tema
@NSManaged var fag: Fag
}
class Tema: NSManagedObject {
@NSManaged var title: String
@NSManaged var oppgave: NSSet
}
class Fag: NSManagedObject {
@NSManaged var title: String
@NSManaged var fagKode: String
@NSManaged var isUnlocked: NSNumber
@NSManaged var oppgave: NSSet
}
这是我的提取请求:
//This variable gets a value from a prepareForSegue function earlier
var fag:Fag!
var temaer:[Tema] = []
var fetchResultController:NSFetchedResultsController!
override func viewDidLoad() {
super.viewDidLoad()
println("Oppgaver fetches fra databasen")
var fetchRequest = NSFetchRequest(entityName: "Tema")
let sortDescriptor = NSSortDescriptor(key: "title", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
//This is the line thats giving me the error
fetchRequest.predicate = NSPredicate(format: "oppgave.allObjects.first?.fag.fagKode == %@", fag.fagKode)
if let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext{
fetchResultController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
fetchResultController.delegate = self
var e:NSError?
var result = fetchResultController.performFetch(&e)
temaer = fetchResultController.fetchedObjects as! [Tema]
if result != true{
println(e?.localizedDescription)
}
}
}
如何消除错误并检索我想要的对象?
最佳答案
由于同一 Tema
的所有 Oppgave
具有相同的 Fag
,因此您的要求是“其 Oppgave 具有特定 Fag 的 Temas” ,相当于“Temas,其中任何 Oppgaves 都有特定的 Fag”,其谓词是:
fetchRequest.predicate = NSPredicate(format: "ANY oppgave.fag == %@", fag)
关于ios - "fatal error: unexpectedly found nil while unwrapping an Optional value"尝试将谓词与关系对象一起使用时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31350308/