我正在为我的应用构建一个Image Store,基本上它是一个管理图像下载和缓存的单例(两个级别NSCache
和核心数据)。
我想知道我是否可以使用块代替委托,我的意思是,对同一个图像可以有多个请求,我想通过“触发”它们在调用时提供的块来更新所有待处理的请求者。
是否可以在NSArray
中存储块并在下载图像时调用它?这有意义吗?
如果在释放调用对象时触发了块怎么办?
由于
答案 0 :(得分:0)
如果你有一个事件的观察者列表,那么你应该看一下NSNotification
。
每次下载图片时,您的单身人士都应该执行类似
的操作NSDictionary *info = [NSDictionary dictionaryWithObjectsAndKeys:
image, @"image",
originalURL, @"imageURL",
nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"imageDownloaded" object:self userInfo:info];
任何对该图片感兴趣的人都应收到有关该图片的通知。
您可以扩展此模式以包含有关进度和下载失败的通知:)