Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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中从json web服务获取对象_Ios_Objective C_Json - Fatal编程技术网

在后台ios中从json web服务获取对象

在后台ios中从json web服务获取对象,ios,objective-c,json,Ios,Objective C,Json,我正在开发一个应用程序,其中几乎所有内容都是collectionview和图像 当应用程序启动时,您可以看到带有图片的时间线,每个单元格都有一个上传图片的用户名、图片所在城市和图片 好的,如果你点击城市名称标签(在时间轴单元格中),你可以看到该城市的所有图片(在集合视图中),城市分数和一些细节。如果我在任何图片上点击,一个新的photogalleryViewController就会启动,因为我有所有图片的NSArray,所以我可以滚动查看城市的所有图片 当我点击用户名标签(在时间轴单元格中)时,

我正在开发一个应用程序,其中几乎所有内容都是
collectionview
图像

当应用程序启动时,您可以看到带有图片的
时间线
,每个
单元格
都有一个上传图片的用户名、图片所在城市和图片

好的,如果你点击城市名称标签(在时间轴单元格中),你可以看到该城市的所有图片(在集合视图中),城市分数和一些细节。如果我在任何图片上点击,一个新的photogallery
ViewController
就会启动,因为我有所有图片的NSArray,所以我可以滚动查看城市的所有图片

当我
点击
用户名
标签
(在时间轴
单元格中
)时,同样的
发生
,我下载用户信息和用户图片的
数组
,并显示在用户配置文件中

好吧,当我按下时间线
单元格的一张图片时,问题就来了,那张图片直接启动PhotoGallery
ViewController
(没有启动我下载图片阵列的城市或用户配置文件),所以我只有一张图片的NSArray

所以,我的问题是

*当我显示图片时,如何在背景中获取用户图像
array
*

我想我可以调用
User class
中名为
getUserPictureArray
的class方法,然后调用服务器,获取这些图像并使用
委托返回它们。但我不知道为什么我认为这不是最好的办法


有什么想法吗?谢谢

评论中的人说。。。在
getUserPictureArray
方法中使用和:

dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  [[AFHTTPRequestOperationManager manager] GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
    // Do whatever you want with data in responseObject
  } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    // Handle error
  }];
});

如果您这样做,它将在后台下载数据,在
success
块中,您可以将这些照片保存到
NSArray
中,或者使用它们执行任何操作。但是请记住要明智地做,不要在这个
NSArray
是空的时候引用它。

你看过AFN吗?我很困惑。您清楚地知道如何从服务器检索媒体。你为什么不在推画廊的时候这么做呢?另外,问题的标题提到了背景提取。因此,如果您还没有使用Grand Central Dispatch(),我将借此机会推荐它。我目前正在使用AFNetworking,所以我已经知道了。我只是想在下载所有用户图像时显示该图片)我想做的是在不锁定主线程的情况下获取该数据。。有大量图片的用户是的,这就是问题所在,在我得到它之前,我不能使用这个NSArray,所以我锁定了主线程,所以当
NSArray
充满这些图片时,您必须观察并通知。