加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 核心数据库是空测试

发布时间:2020-12-14 19:35:12 所属栏目:百科 来源:网络整理
导读:如何测试核心数据数据库是否为空? 我试过了: NSIndexPath *path1 = [NSIndexPath indexPathForRow:0 inSection:0];NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:path1];if([[managedObject valueForKey:@"date"] d
如何测试核心数据数据库是否为空?
我试过了:

NSIndexPath *path1 = [NSIndexPath indexPathForRow:0 inSection:0];
NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:path1];
if([[managedObject valueForKey:@"date"] description]!=nil){SOMEFUNCTION}else{SOMEFUNCTION}

谢谢

解决方法

您必须为您在核心数据中使用的每个实体创建一个fetchrequest.如果fetchrequest返回没有结果,则表示您没有将此实体的对象存储在核心数据中.

- (BOOL)coreDataHasEntriesForEntityName:(NSString *)entityName {
    NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
    NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:self.managedObjectContext];
    [request setEntity:entity];
    [request setFetchLimit:1];
    NSError *error = nil;
    NSArray *results = [self.managedObjectContext executeFetchRequest:request error:&error];
    if (!results) {
        LogError(@"Fetch error: %@",error);
        abort();
    }
    if ([results count] == 0) {
        return NO;
    }
    return YES;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读