UIImageView + AFNetworking setImageWithURLRequest使用RestKit?
我为Rest Api实现使用了RestKit(0.20.0) – 所有GET,POST等。GETs返回图像的一些URL。 我正在使用UIImageView + AFNetworking setImageWithURLRequest函数来下载这些。 我惊讶地看到RestKit日志打印这些提取,所以我做了一些debugging。 似乎AFNetworking发送了一些通知,最终登陆RestKit。
看起来像它发生,因为AFNetworkingOperationDidStartNotification被激发的图像获取和RK已经在RKObjectRequestOperation.m中注册此通知。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(HTTPOperationDidStart:) name:AFNetworkingOperationDidStartNotification object:nil];
我的问题是 –
-
对于我来说,是否这是给我的路由这个问题,我的思想背后使用这个api是为了确保图像提取是完全独立的线程比RK。
-
这会影响我的CoreData实现吗? 这个图像是否会被caching – 我猜测它不会是因为我没有明确地存储它,但如果这些操作开始发生在与Rest api操作相同的池上,它可能会影响性能吗?
-
这是正确的实施? 我是否应该将图像caching在CoreData中,而不是全部使用AFNetworking API?
-
稍微偏离但相关的话题 – 我计划从服务器获取数百个项目,每个项目也可以有很多项目。 而且每一个都会有图像。 所以它是一个漂亮的networking应用程序。 是否有任何最佳实践来pipe理这些请求,以避免性能障碍?
提前Thx的帮助..
对于我来说,是否这是给我的路由这个问题,我的思想背后使用这个API是为了确保图像提取是完全独立的线程比RK。
不,不应该。 该请求仍将在另一个线程上运行。
这会影响我的CoreData实现吗? 这个图像是否会被caching – 我猜测它不会是因为我没有明确地存储它,但如果这些操作开始发生在与Rest api操作相同的池上,它可能会影响性能吗?
图像只会caching在内存中(如果内存可用)。 一般来说,我同意@ m-farhan SDWebImage
将是一个更好的select,而不是从核心数据分开,但将图像caching到磁盘,所以你不要下载它们。 一般来说,您不希望将图像存储在Core Data中。
如果您同时完成所有请求,则可能会影响性能。 你应该限制你的并发networking操作〜4或5。
这是正确的实施? 我是否应该将图像caching在CoreData中,而不是全部使用AFNetworking API?
往上看。
稍微偏离但相关的话题 – 我计划从服务器获取数百个项目,每个项目也可以有很多项目。 而且每一个都会有图像。 所以它是一个漂亮的networking应用程序。 是否有任何最佳实践来pipe理这些请求,以避免性能障碍?
往上看。 设置RKObjectManager
的operationQueue
的并发计数。
我没有很多的RestKit的知识,但我使用了很多的API我只是AFNetworking与JSONparsing器,并在NSDictionery中处理它。 如何根据我的图像caching问题最好的解决scheme是SDWebImages库。 它简单和单独工作,它会照顾所有的caching问题。 和您的问题4.使用AFNetworking requestManager,并不要处理您的数据在主线程(我认为RestKit和/或AFNetworking)将照顾这一点,并实施SDWebImages是这样简单
#import "SDWebImage/UIImageView+WebCache.h" [userImage setImageWithURL:[NSURL URLWithString:@"https://graph.facebook.com/12345/picture?type=large"]] placeholderImage:[UIImage imageNamed:@"unknownUser.png"]];
- iphone::使用NSPredicate无法识别的select器错误
- Swift:将CoreData作为数组获取
- iOS:如何创build我的核心数据库的备份副本? 以及如何导出/导入该副本?
- 数据未更新的NSFetchedResultsController
- NSManagedObjectContext的performBlockAndWait:不在接收者的队列上执行
- 核心数据崩溃::对象不能为零
- 如何在Xcode 4.2中禁用CoreData的反向关系警告?
- 如何浏览在我的iPhone上运行的应用程序中的核心数据?
- Swift 2.1核心数据 – 保存具有一对多关系的数据,但如果已经存在,则不要添加等值数据