gpt4 book ai didi

ios - NSPredicate 抛出 EXC_BAD_ACCESS

转载 作者:行者123 更新时间:2023-11-29 00:39:08 24 4
gpt4 key购买 nike

我正在尝试删除用户选择的书籍,但我在 NSPredicate 行收到 EXC_BAD_ACCESS。谁能告诉我哪里做错了?

 func deleteSelectedBook() {
// Create Fetch Request
let fetchRequest = NSFetchRequest(entityName: "BookEntity")

// Create array string for predicate
var titleCollection:[String] = []
var formatString:String = ""
if let selectedCellCollection = self.tableView.indexPathsForSelectedRows {
for index in selectedCellCollection{
if (!formatString.isEmpty) {
formatString += " OR "
}
var temp = (self.tableView.cellForRowAtIndexPath(index)?.textLabel?.text)!
titleCollection.append(temp)
formatString += " title = %@ "
}
}

// Configure Fetch Request
fetchRequest.predicate = NSPredicate(format: formatString, titleCollection)

......

最佳答案

对于两个(例如)选定的项目,formatString 将是

"title = %@ OR title = %@"

需要两个参数,但是在

NSPredicate(format: formatString, titleCollection)

只给出了一个参数。您可以

解决这个问题
NSPredicate(format: formatString, argumentArray: titleCollection)

titleCollection 现在为谓词创建。但更好更简单的解决方案是

NSPredicate(format: "title IN %@", titleCollection)

具有固定谓词格式字符串。

通常应该避免使用字符串操作来创建谓词格式字符串。在这种情况下,一个简单的谓词服务相同的目的。在更复杂的情况下,NSCompoundPredicate可用于动态构建谓词。

关于ios - NSPredicate 抛出 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39926505/

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