0

次のコードフラグメントでは、ARCを使用して、デリゲートを2つのメソッドを呼び出すのに十分な長さで存続させるにはどうすればよいですか?

現在、コンパイラエラーが発生します

不正なレシーバータイプ'__autoreleasingid *'

ARCにデリゲートを保持させ、呼び出しが完了したら解放するために何かをする必要があると思いますが、正しいことは何であるかわかりません。

- (BOOL) requestFromURL:(NSString*)url withDelegate:( id<SimpleDataDelegate>*) delegate
{
    [NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://..."]]
                                       queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
     {
         if ( error )
         {
             [delegate gotFailure:data];
         }
         else
         {
             [delegate gotResult:data];
         }
     }];

    return YES;
}
4

1 に答える 1

7

あなたのメソッドシグネチャはおそらく

- (BOOL) requestFromURL:(NSString*)url withDelegate:(id<SimpleDataDelegate>) delegate

それ以外の

- (BOOL) requestFromURL:(NSString*)url withDelegate:(id<SimpleDataDelegate>*) delegate

最初のパラメーターの 2 番目のパラメーターに a がないことに注意して*ください。それを試して、エラーが消えるかどうかを確認してください。そうでない場合は報告してください。

于 2012-09-16T03:40:32.950 に答える