可以不用手动写谓词,用Xcode的Data Model Designer。只是要用到AND 、OR等逻辑组合时,还得用代码写谓词。
程序示例操作如下:
- 选中Model.xcdatamodeld
- 点击Editor > Add Fetch Request
- 设置模板名字
- 点击"+"号来配置
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]; NSFetchRequest *request = [[[_coreDataHelper model] fetchRequestTemplateForName:@"Test"] copy]; [request setSortDescriptors:[NSArray arrayWithObject:sort]]; NSArray *itemObjects = [_coreDataHelper.context executeFetchRequest:request error:nil]; for (Item *item in itemObjects) { NSLog(@"item name = %@", item.name); }
从代码看出,请求是从Model.xcdatamodeld里面获取的,根据名字。并且拷贝一份出来,因为要进行排序,需要修改,但是模板本书是不能修改的。所以,只能拷贝出来。