Skip to content

Commit ed98bc7

Browse files
committed
添加内容
1 parent 55d736d commit ed98bc7

File tree

1 file changed

+33
-1
lines changed

1 file changed

+33
-1
lines changed

chapter5/adding_to_functionalReactivePixels.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,38 @@
276276
这种方法跟前面我们看到的`importPhotos`方法模式一样,我们的`downloadFullsizedImageForPhotoModel:`方法跟`downloadThumbnailForPhotoModel:`方法也是一样的。除了这两者之外,还有什么重要的抽象方法呢?让我们来完成我们的缩略图方法。
277277

278278
```
279-
--待续 page56
279+
+ (void)downloadThumbnailForPhotoModel:(FRPPhotoModel *)photoModel {
280+
[self download:photoModel.thumbnailURL withCompletion:^(NSData *data){
281+
photoModel.thumbnailData = data;
282+
}];
283+
}
284+
285+
+ (void)downloadFullsizedImageForPhotoModel:(FRPPhotoModel *)photoModel {
286+
[self download:photoModel.fullsizedURL withCompletion:^(NSData * data){
287+
photoModel.fullsizedData = data;
288+
}];
289+
}
290+
291+
+ (void)downloadFullsizedImageForPhotoModel:(FRPPhotoModel *)photoModel {
292+
[self download:photoModel.fullsizedURL withCompletion:^(NSData *data){
293+
photoModel.fullsizedData = data;
294+
}];
295+
}
296+
297+
+ (void)download:(NSString *)urlString withCompletion:(void(^)(NSData * data))completion{
298+
NSAssert(urlString, @"URL must not be nil" );
299+
300+
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
301+
[NSURLConnnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError){
302+
if (completion){
303+
completion(data);
304+
}
305+
}];
306+
}
307+
280308
```
309+
我曾经与这样一位客户工作过,他认为如果你某行一样的代码重复写两次,这代码就应该得到某种程度的抽象。虽然我认为这有点偏激,但我喜欢这种态度。
310+
311+
好了。我们现在可以运行这个应用,点击一个图片去查看它的高清图片。我们也可以向前或者向后滑动来查看前一个或后一个高清图片。非常棒!
312+
281313

0 commit comments

Comments
 (0)