インターネットで見つけたコードを理解しようとしています。自分のプログラムで使用できるように微調整しようとしています。私のプログラムでは、これをシングルトンのインスタンスメソッドにしました。私はこれが何をしているのかほとんど理解していますが、「ブロック」の部分は取得していません。ブロックは何ですか?私の実装では、NSSetPhotosの代わりにパラメーターとして何を渡す必要がありますか。私はこれを理解していません。なぜなら、私は実際にその場所のサーバーから写真を「取得」することを望んでいるからです。だから私は何を送っていますか?
+ (void)photosNearLocation:(CLLocation *)location
block:(void (^)(NSSet *photos, NSError *error))block
{
NSLog(@"photosNearLocation - Photo.m");
NSMutableDictionary *mutableParameters = [NSMutableDictionary dictionary];
[mutableParameters setObject:[NSNumber
numberWithDouble:location.coordinate.latitude] forKey:@"lat"];
[mutableParameters setObject:[NSNumber
numberWithDouble:location.coordinate.longitude] forKey:@"lng"];
[[GeoPhotoAPIClient sharedClient] getPath:@"/photos"
parameters:mutableParameters
success:^(AFHTTPRequestOperation *operation, id JSON)
{
NSMutableSet *mutablePhotos = [NSMutableSet set];
NSLog(@" Json value received is : %@ ",[JSON description]);
for (NSDictionary *attributes in [JSON valueForKeyPath:@"photos"])
{
Photo *photo = [[Photo alloc]
initWithAttributes:attributes];
[mutablePhotos addObject:photo];
}
if (block) {
block([NSSet setWithSet:mutablePhotos], nil);
}
}failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
if (block)
{
block(nil, error);
NSLog(@"Error in Photo.m line 145 %@ ", [error description]);
}
}];
}