gpt4 book ai didi

swift - 关系属性的核心数据获取请求

转载 作者:行者123 更新时间:2023-11-28 08:50:46 26 4
gpt4 key购买 nike

我的应用程序有多个单词列表,每个单词列表包含多个单词。在一个 View Controller 中,tableView 列出了 wordLists,然后 subview Controller 有一个 tableView,其中包含单词。 segue 传递 wordList 实体。但我不知道如何对传递给的 wordList 执行提取请求,然后获取所有单词。错误信息如下所示。我需要执行获取请求而不是查看属性,以便进行排序。

在此先感谢您对此的任何帮助....

WordList 实体有一个属性 listName,关系:words,destination:Word,Inverse:wordList

Word实体有一个属性wordName,wordIndex和关系:wordList,destination:WordList,Inverse:words

我的 WordsViewController 看起来像:

class WordsViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate  {

var coreDataStack: CoreDataStack = (UIApplication.sharedApplication().delegate as! AppDelegate).coreDataStack

var wordList: WordList?
var words = [Word]()
var word: Word?

override func viewDidLoad() {
super.viewDidLoad()

// set the title of the scene
title = wordList?.listName

// fetch all the words that are part of the wordList passed to this VC.
let fetchRequest = NSFetchRequest(entityName: "Word")
let wordListPredicate = NSPredicate(format: "word.wordList == '\(wordList)'") // GIVES AN ERROR SAYING UNABLE TO PARSE THE FORMAT STRING "word.wordList == 'Optional(<WordList:0x...

let sortDescriptor = NSSortDescriptor(key: "wordIndex", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]

fetchRequest.predicate = wordListPredicate

do {
if let results = try coreDataStack.managedObjectContext.executeFetchRequest(fetchRequest) as? [Word] {
words = results
}
} catch {
fatalError("There was an error fetching system person")
}
}

最佳答案

您不能使用字符串插值来构建谓词,使用代替参数替换。在你的情况下(因为 var wordList: WordList? 是一个可选):

if let theWordlist = wordlist {
let wordListPredicate = NSPredicate(format: "wordList == %@", theWordlist)
} else {
// wordlist is nil ...
}

还请注意谓词中的 "word.wordList == " 应该是"wordList == ",因为"wordList"是"Word"的属性实体。

有关详细信息,请参阅 Predicate Format String Syntax在“谓词编程指南”中。

关于swift - 关系属性的核心数据获取请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34253182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com