Как скомпилировать следующий код с помощью ARC?Cast NSURL ** to CFURLRef *
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 *
является указателем на указатель, однако внешняя функция я использую (geturl
), в качестве параметра требуется параметр CFURLRef *
. У меня нет контроля над функцией, поэтому я не могу это изменить.
Как я могу наложить urlPointer
на указатель CFURLRef *
?
Если вы имеете в виду делать 'GetURL (urlPointer)', то нет, как я получаю сообщение об ошибке 'неявное преобразование косвенного указателя на указатель Objective-C к«CFURLRef *»(ака 'const struct __CFURL **') запрещается с помощью ARC'. – Tyilo