相关疑难解决方法(0)

NSPredicate未执行

这很有趣.在我的应用程序中,我在数据库中创建了数千个条目(在另一个线程中,我正在使用MagicalRecord).一切似乎都很好(从背景/前景/上下文的角度来看).

当在主线程中,我尝试获取"刚插入"的数据时,我发现了以下行为:

- (NSArray *) familiesInCompany:(Company *) company {
  NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"company == %@", company];
  NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"company.name == %@", company.name];

  NSArray *first = [Family MR_findAllSortedBy:@"name" ascending:YES withPredicate:predicate1];
  NSArray *second = [Family MR_findAllSortedBy:@"name" ascending:YES withPredicate:predicate2];
  NSArray *third = [Family MR_findByAttribute:@"company" withValue:company andOrderBy:@"name" ascending:YES];

  return second;
}
Run Code Online (Sandbox Code Playgroud)

现在我得到的是:

  • 第一个:是一个空数组
  • 第二:包含所有Family对象,如预期的那样
  • 第三:是一个空数组.

通过调试SQL语句,我得到以下内容:

"第一"声明:

CoreData:注释:总获取执行时间:0行为0.0000s.

"第二个"声明":

CoreData:sql:SELECT 0,t0.Z_PK,t0.Z_OPT,t0.ZNAME,t0.ZCOMPANY FROM ZFAMILY t0 JOIN ZCOMPANY t1 ON t0.ZCOMPANY = t1.Z_PK WHERE t1.ZNAME =?ORDER BY t0.ZNAME

CoreData:annotation:sql连接获取时间:0.0005s

CoreData:注释:总获取执行时间:2行0.0007秒.

"第三"声明: …

sqlite core-data nspredicate ios magicalrecord

8
推荐指数
1
解决办法
2632
查看次数

标签 统计

core-data ×1

ios ×1

magicalrecord ×1

nspredicate ×1

sqlite ×1