代码之家  ›  专栏  ›  技术社区  ›  Chris Allinson

Swift5简单核心数据nspredicate get

  •  0
  • Chris Allinson  · 技术社区  · 5 年前

    我只是试图通过一个名为“id”的字符串类型的属性访问核心数据中的记录。下面一直抱怨“无法分析格式字符串”id==8df3f2c6741b47c8864d1052c36e2c4d“。我怎样才能解决这个问题?

    private func getEntity(id: String) -> NSManagedObject? {
        var myEntity: NSManagedObject?
    
        let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "MyEntity")
        fetchRequest.predicate = NSPredicate(format: "id = \(id)")
        do {
            var tempArray = try getCurrentManagedContext().fetch(fetchRequest)
            myEntity = tempArray.count > 0 ? tempArray[0] : nil
        } catch let error as NSError {
            print("get failed ... \(error) ... \(error.userInfo)")
        }
    
        return myEntity
    }
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   matt    5 年前

    它是一个格式字符串。而不是

    NSPredicate(format: "id = \(id)")
    

    NSPredicate(format: "id == %@", id)