Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用NSFetchRequest获取二进制数据_Ios_Objective C - Fatal编程技术网

Ios 使用NSFetchRequest获取二进制数据

Ios 使用NSFetchRequest获取二进制数据,ios,objective-c,Ios,Objective C,我希望获取二进制数据和一个字符串,二进制数据应该是“setPropertiesToFetch”。我已经成功地获取了字符串,但是当我获取二进制数据时,它只返回内存地址,而不返回实际内容 我当前的代码: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:id(id)sender { TBAppDelegate *delegate = (TBAppDelegate *)[[UIApplication sharedApplic

我希望获取二进制数据和一个字符串,二进制数据应该是“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];
}

如前所述,是否有任何方法将属性设置为二进制数据类型

您似乎误解了
propertiesToFetch
的功能。这是一份清单 您感兴趣的属性(或属性)。 例如,如果“组”是具有属性“a”、“b”和“c”的实体,则可以设置

[requestGroups setPropertiesToFetch:@[@"a", @"b"];
[requestGroups setResultType:NSDictionaryResultType];
获取请求将返回一个字典数组,其中每个字典 包含一个“组”对象的“a”和“b”属性

如果要获取具有特定属性的所有对象,则必须添加谓词。 例如,获取“url”属性所在的所有“组”对象 给定数组,您将添加谓词

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"url IN %@", urls];
[requestGroups setPredicate:predicate];

nsmutualArray
??请复制/粘贴实际的编译代码。我还不明白您想要实现什么。“集团”实体是如何定义的,您期望得到什么结果?而
propertiesToFetch
是实体属性的列表,为什么要“取消归档”呢?self.groups是一个包含已获取对象的NSArray。我希望“setPropertiesToFetch”返回类似“”的内容,而我现在得到的是内存地址。“组”实体具有字符串和二进制数据类型。
self.groups
应该是NSDictionary的NSArray。“只获取记忆地址”是什么意思?而
URL
究竟包含什么呢?URL包含一系列URL,例如:e.x.googleusercontent.com/photo1.gif、googleusercontent.com/photo2.gif、googleusercontent.com/photo3.gif。这是我得到的输出:name=wtf;selectedurl=;where selectedurl应该是上面这样的URL。谢谢:)我现在更明白了