微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查核心数据是否为空

如何使用 swift检查核心数据是否为空.我试过这个方法
var people = [NSManagedobject]()

if people == nil {

}

但这会导致此错误

“binary operator ‘==’ cannot be applied to operands of type [NSManagedobject] and nil”

要检查核心数据库是否为空,您必须在要检查的实体上进行NSFetchRequest,并检查请求的结果是否为空.

您可以使用此功能进行检查:

func entityIsEmpty(entity: String) -> Bool
{

    var appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    var context = NSManagedobjectContext()

    var request = NSFetchRequest(entityName: entity)
    var error = NSErrorPointer()

    var results:NSArray? = self.context.executeFetchRequest(request,error: error)

    if let res = results
    {
        if res.count == 0
        {
            return true
        }
        else
        {
            return false
        }
    }
    else
    {
        println("Error: \(error.debugDescription)")
        return true
    }

}

或简化和更短的解决方案:(使用.countForFetchRequest)

func entityIsEmpty(entity: String) -> Bool
{

    var appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    var context = NSManagedobjectContext()

    var request = NSFetchRequest(entityName: entity)
    var error = NSErrorPointer()

    var results:NSArray? = self.context.executeFetchRequest(request,error: error)

    var count = context.countForFetchRequest(request,error: error)

    if error != nil
    {
        println("Error: \(error.debugDescription)")
        return true
    }
    else
    {
        if count == 0
        {
            return true
        }
        else
        {
            return false
        }

    }


}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐