3

ARC を使用して次のコードをコンパイルするにはどうすればよいですか?

int main() {

    NSURL *url = [NSURL new];
    NSURL * __strong *urlPointer = &url;
    CFURLRef *cfPointer = (__bridge CFURLRef *)urlPointer;
    geturl(cfPointer);
    NSLog(@"Got URL: %@", url);
    return 0;
}

次のエラーが表示されます。

Incompatible types casting 'NSURL *__strong *' to 'CFURLRef *' (aka 'const struct __CFURL **') with a __bridge cast

私はそれCFURLRefがすでにポインターであるCFURLRef *ことを知っgeturlCFURLRef *います. 私は機能を制御できないので、それを変更することはできません。

urlPointerCFURLRef *ポインタにキャストするにはどうすればよいですか?

4

1 に答える 1

10

あなたがしていることのほとんどは、複雑なポインター体操です。なぜこれをしないのですか?

CFURLRef cfPointer = NULL;
geturl(&cfPointer);
NSURL *url = (__bridge NSURL *)cfPointer;
NSLog(@"Got URL: %@", url);
于 2013-02-22T00:44:29.143 に答える