我有一個單例類,我已經實現了一個通過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
如何在我的代碼中使用完成塊。可能嗎? –