我正在寻找二进制数据和字符串,二进制数据应该是“setPropertiesToFetch。”。我已经成功获取了字符串,但是当我获取二进制数据时,它只返回内存地址而不是实际内容。
我目前的代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:id(id)sender
{
TBAppDelegate *delegate = (TBAppDelegate *)[[UIApplication sharedApplication] delegate];
managedObjectContext = [delegate managedObjectContext];
NSFetchRequest *requestGroups = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Group" inManagedObjectContext:managedObjectContext];
[requestGroups setFetchBatchSize:INFINITY];
[requestGroups setEntity:entity];
[requestGroups setReturnsDistinctResults:YES];
NSMutableArray *urls = [NSKeyedUnarchiver unarchiveObjectWithData:self.group.selectedurl];
[requestGroups setPropertiesToFetch:urls];
[requestGroups setResultType:NSDictionaryResultType];
NSError *error;
self.groups = [managedObjectContext executeFetchRequest:requestGroups error:&error];
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
TBGroupsDetailViewController *detailsController = segue.destinationViewController;
detailsController.group_name = [self.groups objectAtIndex:indexPath.row];
}
正如我之前所说,有没有办法将属性设置为二进制数据类型?
答案 0 :(得分:0)
您似乎误解了propertiesToFetch
的功能。这是一个列表
您感兴趣的属性(或属性)。
例如,如果" Group"是一个具有属性的实体" a"," b"和" c",然后你可以设置
[requestGroups setPropertiesToFetch:@[@"a", @"b"];
[requestGroups setResultType:NSDictionaryResultType];
并且获取请求将返回一个字典数组,其中每个字典 包含" a"和" b"一个" Group"的属性对象
如果要获取具有特定属性的所有对象,则必须添加谓词。 例如,要获取所有" Group"对象所在的" url"属性在 给定数组,您将添加谓词
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"url IN %@", urls];
[requestGroups setPredicate:predicate];