在后台ios中从json web服务获取对象
我正在开发一个应用程序,其中几乎所有内容都是在后台ios中从json web服务获取对象,ios,objective-c,json,Ios,Objective C,Json,我正在开发一个应用程序,其中几乎所有内容都是collectionview和图像 当应用程序启动时,您可以看到带有图片的时间线,每个单元格都有一个上传图片的用户名、图片所在城市和图片 好的,如果你点击城市名称标签(在时间轴单元格中),你可以看到该城市的所有图片(在集合视图中),城市分数和一些细节。如果我在任何图片上点击,一个新的photogalleryViewController就会启动,因为我有所有图片的NSArray,所以我可以滚动查看城市的所有图片 当我点击用户名标签(在时间轴单元格中)时,
collectionview
和图像
当应用程序启动时,您可以看到带有图片的时间线
,每个单元格
都有一个上传图片的用户名、图片所在城市和图片
好的,如果你点击城市名称标签(在时间轴单元格中),你可以看到该城市的所有图片(在集合视图中),城市分数和一些细节。如果我在任何图片上点击,一个新的photogalleryViewController
就会启动,因为我有所有图片的NSArray,所以我可以滚动查看城市的所有图片
当我点击
用户名标签
(在时间轴单元格中
)时,同样的发生
,我下载用户信息和用户图片的数组
,并显示在用户配置文件中
好吧,当我按下时间线单元格的一张图片时,问题就来了,那张图片直接启动PhotoGalleryViewController
(没有启动我下载图片阵列的城市或用户配置文件),所以我只有一张图片的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
充满这些图片时,您必须观察并通知。