AFNetworking使ってみた
Upcoming SlideShare
Loading in...5
×
 

AFNetworking使ってみた

on

  • 8,275 views

iOS向けのネットワークアクセスのためのフレームワーク、AFNetworkingを使っているので紹介。

iOS向けのネットワークアクセスのためのフレームワーク、AFNetworkingを使っているので紹介。

Statistics

Views

Total Views
8,275
Views on SlideShare
8,274
Embed Views
1

Actions

Likes
8
Downloads
10
Comments
0

1 Embed 1

http://coderwall.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

AFNetworking使ってみた AFNetworking使ってみた Presentation Transcript

  • AFNetwoking 使ってみたTaro Matsuzawa aka. btm (@smellman) Georepublic Japan 2012.06.23 sumaben@kanto LT
  • だれ?• すまべん@関東スタッフ• Firefox Hacks Rebooted(Oreilly Japan)の著 者の一人)• 6月に転職&日本UNIXユーザ会幹事に• 前職でelecomaとかhadakaroidとか• 破滅界隈らしい
  • 宣伝• LL Decade 2012/08/04 銀座ブロッサムで 開催• @oota_kenさんも出るよ!• 詳しくは http://ll.jus.or.jp/2012/• スマートフォンかんけーねー
  • 遅刻した• G-空間Expo(パシフィコ横浜)で開催され たGeo Media Summitに出席 • 仕事に近いので• 事前にスタッフには遅刻の旨は連絡す み...
  • 遅刻したらLTやることになった
  • AFNetworking• iOS向けのネットワークアクセスのため のフレームワーク • Facebookに買収されたチェックイン系 サービスの会社が開発していたもの• https://github.com/AFNetworking/ AFNetworking
  • 特徴• NSURLConnection, NSOperationなどの普 通に使われている技術しか使ってない • 魔窟っぽくない• MITライセンス
  • サンプルコード// URLを作成NSURL *url = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/public_timeline.json"];// URLからRequestを作成NSURLRequest *request = [NSURLRequest requestWithURL:url];// operationを作成AFJSONRequestOperation *operation =[AFJSONRequestOperationJSONRequestOperationWithRequest:requestsuccess:^(NSURLRequest *request, NSHTTPURLResponse*response, id JSON) { NSLog(@"Public Timeline: %@", JSON);} failure:nil];// operationをstartさせる[operation start];
  • とても簡単• AF*OperationはNSOperationを継承して いるためQueueなんかも簡単に作れる• 失敗か成功かをBlockで処理すればいい• JSONなんかも自動的にオブジェクトに してくれるAFJSON*というのがある
  • queue// Queue本体作成NSOperationQueue *queue = [[NSOperationQueue alloc] init];...// operationを作成AFJSONRequestOperation *operation =[AFJSONRequestOperationJSONRequestOperationWithRequest:requestsuccess:^(NSURLRequest *request, NSHTTPURLResponse*response, id JSON) { NSLog(@"Public Timeline: %@", JSON);} failure:nil];// queueにぶち込む[queue addOperation:operation];//[operation start];
  • block渡し(1)// operationを作成AFJSONRequestOperation *operation =[AFJSONRequestOperationJSONRequestOperationWithRequest:requestsuccess:^(NSURLRequest *request,NSHTTPURLResponse *response, id JSON) { NSLog(@"Public Timeline: %@", JSON);} failure:nil];
  • block渡し(2)/* メソッド */-(void)access:(NSURLRequest*) request withSuccessBlock:(void (^)(AFHTTPRequestOperation*, id))success failure:(void (^)(AFHTTPRequestOperation*,NSError*))failure{ AFJSONRequestOperation *operation = [[AFJSONRequestOperation alloc]initWithRequest:request]; [operation setCompletionBlockWithSuccess:success failure:failure]; [_queue addOperation:operation];}/* 実装コード */ NSURLRequest *_request = [self requestForURLString:hoge withParams:_params]; [self access:_request withSuccessBlock:^(AFHTTPRequestOperation *operation,id JSON) { .... } failure:^(AFHTTPRequestOperation *operation, NSError *err) { .... }];
  • JSON変換// operationを作成AFJSONRequestOperation *operation = [AFJSONRequestOperationJSONRequestOperationWithRequest:requestsuccess:^(NSURLRequest *request, NSHTTPURLResponse*response, id JSON) { NSString *status = [JSON valueForKeyPath:@"STAT"]; NSNumber *num = [JSON valueForKeyPath:@”num”]; NSArray *values = [JSON valueForKeyPath:@”values”]; for (NSDictionary value in values) { .... }} failure:nil];
  • 使うまで• zipを展開してxcodeにぶちこむ• ARCが有効だとエラーがでるので Compiler Flagsに -fno-objc-arc を追加• あとは #include でOK。
  • おしまい