彼女を呼び出したviewcontrollerにjSONを返す必要があるPOSTメソッドを書きました。成功ブロックreturn _jsonDictionary;
を追加すると、次のエラーが発生します。
Incompatible block pointer types sending 'id (^)(NSURLRequest *__strong, NSHTTPURLResponse *__strong, __strong id)' to parameter of type 'void (^)(NSURLRequest *__strong, NSHTTPURLResponse *__strong, __strong id)'
非同期であるため、リターンを追加すると強制的に同期されると思いますが、アプリのすべての POST メソッドを 1 つのクラスにしたいので、何かを使用してアプリ全体で宣言されている変数に JSON からデータを取得します私valueForKey
にとって物事を少し複雑にします。それってデザインが悪いの?
-(NSDictionary *)getData
{
_jsonDictionary = [[NSDictionary alloc]init];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@/getSomething",MainURL ]];
[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/html"]];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:nil parameters:nil];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
_jsonDictionary = JSON;
NSLog(@"jsonDictionary: %@",_jsonDictionary);
}
failure:^(NSURLRequest *request , NSURLResponse *response , NSError *error , id JSON)
{
NSLog(@"request: %@",request);
NSLog(@"Failed: %@",[error localizedDescription]);
}];
[httpClient enqueueHTTPRequestOperation:operation];
}
別の質問ですが、上記のコードの最後にこの警告が表示されるのはなぜですか? Control reaches end of non-void function
.m と .h のメソッドの名前を-(void )getData
??に変更しても、