0

我正在寻找二进制数据和字符串,二进制数据应该是“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];
}

正如我之前所说,有没有办法将属性设置为二进制数据类型?

4

1 回答 1

0

您似乎误解了 的功能propertiesToFetch。这是您感兴趣的属性(或属性)的列表。例如,如果“Group”是具有属性“a”、“b”和“c”的实体,那么您可以设置

[requestGroups setPropertiesToFetch:@[@"a", @"b"];
[requestGroups setResultType:NSDictionaryResultType];

并且获取请求将返回一个字典数组,其中每个字典包含一个“组”对象的“a”和“b”属性。

如果要获取具有某个属性的所有对象,则必须添加一个predicate。例如,要获取“url”属性在给定数组中的所有“Group”对象,您可以添加谓词

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"url IN %@", urls];
[requestGroups setPredicate:predicate];
于 2013-10-08T19:16:50.167 回答