このスクリーンキャストをフォローしました... http://nsscreencast.com/episodes/6-afnetworking
私のシングルトンAFHTTPClient
コードは...
+ (MyClient *)sharedInstance
{
static dispatch_once_t once;
static MyClient *myClient;
dispatch_once(&once, ^ { myClient = [[MyClient alloc] initWithBaseURL:[NSURL URLWithString:MyBaseURL]];});
return myClient;
}
- (id)initWithBaseURL:(NSURL *)url
{
self = [super initWithBaseURL:url];
if (self) {
// these are not actual values but I am setting default headers.
[self setDefaultHeader:@"sdfg" value:@"4"];
[self setDefaultHeader:@"std" value:@"3"];
[self setDefaultHeader:@"reg" value:@"5"];
[self setDefaultHeader:@"yu" value:@"1"];
[self setDefaultHeader:@"xv" value:@"3"];
[self setDefaultHeader:@"hmm" value:@"5"];
[self registerHTTPOperationClass:[AFJSONRequestOperation class]];
}
return self;
}
それから私はそれを次のように実行しています...
[[MyClient sharedInstance] getPath:@"blah.php" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSMutableArray *stats = [NSMutableArray array];
// it crashes on the next line because responseObject is NSData
for (NSDictionary *dictionary in responseObject) {
CCStatistic *stat = [[CCStatistic alloc] initWithDictionary:dictionary];
[stats addObject:stat];
}
self.stats = stats;
[self.tableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error retrieving!");
NSLog(@"%@", error);
}];
それはすべて正常に動作します。私はCharlesでそれを傍受しました。操作がJSON操作ではないことを除いて、正しいリクエストを送信し、正しいJSONを受信しています。
だから、私が期待していたものでresponseObject
はありNSData
ません。JSON object
JSON 操作を使用するための設定がありませんか?