swift - NSPREDICATE 失败 [重复]

Posted

技术标签:

【中文标题】swift - NSPREDICATE 失败 [重复]【英文标题】:swift - NSPREDICATE fails [duplicate] 【发布时间】:2015-07-01 08:25:25 【问题描述】:

如果 articleID 存在,我会尝试过滤 coredata,如果不存在,则将其添加到 coredata。但我刚开始 EXC_BAD_ACCESS 错误形式让谓词行...

var error: NSError?
let fetchRequest = NSFetchRequest(entityName: "Article")
let predicate = NSPredicate(format: "articleID == %@", articleID!)

fetchRequest.predicate = predicate
let results = self.context!.executeFetchRequest(fetchRequest, error: &error) as! [Article]

    if results.count > 0 
       println("already in the list")
    else
       newArticle.articleID = articleID!
       newArticle.abstract = abstract!
       newArticle.authorName = authorName!

        var saveError: NSError?
        self.context!.save(&saveError)

        if let _error = saveError 
            println("\(_error.localizedDescription)")
         else 
            println("Saved!")
        
    

【问题讨论】:

可能是因为 articleID 为 nil 我将如何实现对 NSPREDICATE 的 if 检查? 只要检查 articleID 是否为 != nil,如果不是,就是 nil 我必须在我的文章核心数据中添加表格。文章和favArticles,我将一篇文章标记为favArticle。如果一篇文章已经被收藏,我不想将它添加到 favArtiles。我想我检查了错误的 articleID,因为它总是 nil... 它是一个整数。我使用 %ld 而不是 %@ 并且它有效。谢谢... 【参考方案1】:
let predicate = NSPredicate(format: "articleID == %@", articleID!)

articleID 是一个整数。我使用 %ld 而不是 %@ 并且它有效...

Swift NSPredicate throwing EXC_BAD_ACCESS(Code=1, address=0x1) when compounding statements

【讨论】:

以上是关于swift - NSPREDICATE 失败 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

swift 3 迁移后 NSPredicate 崩溃

Swift3 中的 NSPredicate

Swift NSPredicate SUBQUERY with NOT IN?

swift : 使用 NSPredicate 过滤 NSMutableDictionary 的 NSMutableArray

Swift 3 NSPredicate 关系请求返回空数组

NSPredicate 按名称传递“多个”参数[在 Swift 中]