首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于NSCompoundPredicate的NSPredicate阵列

用于NSCompoundPredicate的NSPredicate阵列
EN

Stack Overflow用户
提问于 2016-08-10 02:59:59
回答 1查看 209关注 0票数 1

请帮帮我,我想在NSCompoundPredicate的Swift 2.2 NSPredicate数组中创建一个coredata get函数

代码语言:javascript
复制
public func loadData(entityName: String, filters: [String: String] = [:], dataFault: Bool = true) -> [NSManagedObject] {
    var listItems: [NSManagedObject]?
    let delegate = UIApplication.sharedApplication().delegate as? AppDelegate

    if let context = delegate?.managedObjectContext {
        let fetchRequist = NSFetchRequest(entityName: entityName)
        if (filters.count > 0) {
            var predicte: [NSPredicate]
            for (key, value) in filters {
                let p1:NSPredicate = NSPredicate(format: "%K == %@", key, value as NSObject)
                predicte.appendContentsOf(p1)
            }
            fetchRequist.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: predicte)
        }
        fetchRequist.returnsObjectsAsFaults = dataFault
        do{
            let results = try context.executeFetchRequest(fetchRequist)
            listItems = results as? [NSManagedObject]
        }
        catch let err {
            print(err)
        }

    }
    else{
        print("context Error")
    }
    return listItems!

}

在predicte.appendContentsOf(p1)上显示错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-10 03:33:34

在您的代码中,p1不是CollectionType,因此需要使用append,而不是appendContentsOf

代码语言:javascript
复制
                predicte.append(p1)

此外,您还需要适当地初始化predicte

代码语言:javascript
复制
            var predicte: [NSPredicate] = []
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38858484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档