Core data NSPredicate可自行返回任何

Core data NSPredicate可自行返回任何,core-data,nspredicate,nsmanagedobject,Core Data,Nspredicate,Nsmanagedobject,是否有一种方法(NSPredicate或其他函数)可以返回任何一个现有的NSManagedObject。也可以是实体类型的计数。除了自我存在之外,没有其他要求 NSPredicate *fetch = [NSPredicate predicateWithFormat: "@ANY"] .... [fetch setEntity:entityDescription]; [fetch setPredicate: predicate]; [fetch setFetchLimit:1]; 请注意,这

是否有一种方法(
NSPredicate
或其他函数)可以返回任何一个现有的
NSManagedObject
。也可以是实体类型的计数。除了自我存在之外,没有其他要求

NSPredicate *fetch = [NSPredicate predicateWithFormat: "@ANY"]

....
[fetch setEntity:entityDescription];
[fetch setPredicate: predicate];
[fetch setFetchLimit:1];

请注意,这是“根”对象,因此在启动阶段没有实例。

我不确定是否正确理解了您的问题,但要获得一个(任意)对象 只需在获取请求中添加谓词,并将获取限制设置为 一:


几年后我遇到了这个问题&我想在Swift中看到这一点可能会有所帮助。在我的测试中,它返回数据存储中的第一个条目,不一定是来自整个存储的随机条目,甚至每次都是不同的条目

假设通过“ANY”,您只需返回第一个条目就可以了,下面介绍如何在Swift中执行此操作

对于Swift 4.2:

let fetchRequest : NSFetchRequest<yourEntityName> = yourEntityName.fetchRequest()
    fetchRequest.fetchLimit = 1
    do {
        let fetchResults = try managedContext.fetch(fetchRequest)
        if fetchResults.count == 0 {
            // found none
        } else {
            // found one
            var obj: NSManagedObject = fetchResults[0]
        }
    } catch let error as NSError {
        print("Could not fetch \(error), \(error.userInfo)")
    }
let-fetchRequest:NSFetchRequest=yourEntityName.fetchRequest()
fetchRequest.fetchLimit=1
做{
让fetchResults=尝试managedContext.fetch(fetchRequest)
如果fetchResults.count==0{
//一无所获
}否则{
//找到一个
var obj:NSManagedObject=fetchResults[0]
}
}将let错误捕获为NSError{
打印(“无法获取\(错误),\(错误.userInfo)”)
}

就这样。干杯始终使用nsarraycontroller或nsobjectcontroller来实现此简单目的。
let fetchRequest : NSFetchRequest<yourEntityName> = yourEntityName.fetchRequest()
    fetchRequest.fetchLimit = 1
    do {
        let fetchResults = try managedContext.fetch(fetchRequest)
        if fetchResults.count == 0 {
            // found none
        } else {
            // found one
            var obj: NSManagedObject = fetchResults[0]
        }
    } catch let error as NSError {
        print("Could not fetch \(error), \(error.userInfo)")
    }