これは、AFNetworking のサンプル コードの抜粋です。
+ (void)globalTimelinePostsWithBlock:(void (^)(NSArray *posts, NSError *error))block {
[[AFAppDotNetAPIClient sharedClient] getPath:@"stream/0/posts/stream/global" parameters:nil success:^(AFHTTPRequestOperation *operation, id JSON) {
NSArray *postsFromResponse = [JSON valueForKeyPath:@"data"];
NSMutableArray *mutablePosts = [NSMutableArray arrayWithCapacity:[postsFromResponse count]];
for (NSDictionary *attributes in postsFromResponse) {
Post *post = [[Post alloc] initWithAttributes:attributes];
[mutablePosts addObject:post];
}
if (block) {
block([NSArray arrayWithArray:mutablePosts], nil);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (block) {
block([NSArray array], error);
}
}];
}
私が理解していないのは次のとおりです。
その
(void (^)(NSArray *posts, NSError *error))block
部分。ブロックだとすると、ブロックはglobalTimelinePostsWithBlock
メソッドのパラメータということですか?最初の質問に続いて、誰か構文を説明してもらえますか? なぜ
block
最後にキーワードがあるのですか?