1
私の問題は、アプリケーション内に定期的に一連のネットワーク要求をループ内で作成する必要があるということです。これは別のスレッドの内部にあり、要求の性質(ローカルネットワーク上のデバイスに対する応答は単純です)のために、これを同期して実行したいと思います。ネットワーク通信はdatabaseController
クラスより別のnetworking
クラスです。ios同期ネットワーク要求ハンドラが結果を返す
私が完了ハンドラ内から何か
+ (void)GetMessages
{
NSURLSession *session = [NSURLSession sharedSession];
NSURLRequest *request = [networking makeAuthenticatedRequest:@"subpath.html"];
//NSString* returnable;
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:
^(NSData *data, NSURLResponse *response, NSError *error) {
NSString* newStr = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
//returnable = newStr;
//return(newStr)
NSLog(newStr);
}];
[task resume];
}
上記のコードは動作しますが、要求の結果を印刷除いて何もしないを返すためにnetworking
クラスのメソッドを取得することはできません。私がコメントアウトしたもののどれかを試してみると、必要な変更は何もできません。私は呼び出し元オブジェクトへの参照を渡して、完了ハンドラの中にnewStrを格納するためのプロパティを更新しようとしましたが、それでも動作しません。
私は可能な試みをしていますか?もしそうなら、どのように?
コードをios 7-9と互換性があるようにする必要があります。あなたは次の操作を行う必要があり