-(NSDictionary *)fetchFromUrl:(NSString *)url{
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:
^(NSData *data, NSURLResponse *response, NSError *error) {
dataFetched = [NSJSONSerialization JSONObjectWithData:data
options:0
error:NULL];
}];
[task resume];
NSLog(@"dataFetched, %@", dataFetched);
return dataFetched;
}
だから私は、グローバル変数としてdataFetchedを置くので、私は私の.mファイルの周りにアクセスし、他の.mファイルからのアクセスを可能にできますが、可能性がしようとした私はdataFetched NSLog
しようとしたとき、それ以外の.mファイルからは(null)が出力されます。とにかくデータを必要とする他の.mファイルでデータにアクセスできるようにすることはできますか?NSURLSessionDataTask
それは働いた!しかし、これは(void(^)(NSDictionary * data))辞書はどのように動作するのですか? – jane
あなたはAPIコールを作成していて、それはバックグラウンド(非同期)で動作します。返り値NSDictionaryで宣言した関数は同期の仕方で動作します。その前に応答を得ると、ブロックは非同期で動作します。 –
大丈夫ですが、それは機能しましたが、どのようにデータ値にアクセスするのですか?私は__blockを使ってみましたが、まだ値を取得していません。 – jane