シングルトンクラスを使用して、URLを介してjsonデータを解析するメソッドを実装しました。コードは次のとおりですシングルトンクラスを使用してjsonデータを解析する方法
-(id)parseJsonDataWIthURL:(NSString *)url :(NSString*)datumm
{
NSMutableDictionary *arrrrr=[[NSMutableDictionary alloc]init];
NSMutableURLRequest *reqqq=[[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:url]];
NSData *dataaa=[datumm dataUsingEncoding:NSUTF8StringEncoding];
[reqqq setHTTPMethod:@"POST"];
[reqqq setHTTPBody:dataaa];
NSURLSessionConfiguration *configg=[NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession*sessionn=[NSURLSession sessionWithConfiguration:configg delegate:nil delegateQueue:[NSOperationQueue mainQueue]];
NSURLSessionDataTask *taskk=[sessionn dataTaskWithRequest:reqqq completionHandler:^(NSData *data,NSURLResponse *responce,NSError *error){
if(error)
{
NSLog(@"%@", [error localizedDescription]);
}else{
NSMutableDictionary *d = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments|NSJSONReadingMutableContainers error:&error];
NSLog(@"data %@",d);
[arrrrr setDictionary:d];
}
}];
[taskk resume];
return arrrrr;
}
このメソッドは値が返されません。ブロック内で実行するには時間がかかるため、メソッドは結果を返します。したがって、ブロックが完了して値を返すまで待つ方法があります。
完了ブロック、通知またはデリゲートを使用します。しかし、非同期なので、 'grrrrr'は返り値を含みません。 – Larme
私のコードで補完ブロックを使用する方法。出来ますか? –