1

非常に基本的な質問である場合は、ご容赦ください。ARCを有効にしているので、__bridgeを使用してCFStringRefをNSStringに変換しようとしました。

mydevUUIDString = CFUUIDCreateString(NULL, peripheral.UUID);
 NSString *temp = (__bridge NSString *) devUUIDString;

まだ次のエラーが発生します:

 Incompatible type casting 'CFStringRef' (aka 'const struct __CFString  **) to 'NSString' with _bridge cast.

この問題を解決する方法を教えてください。

4

1 に答える 1

8

問題は、mydevUUIDStringを作成するときに、CFStringRefへのポインターとして作成することだと思います。たとえば、次のコードを入力すると、Xcode はエラーを表示しません。

CFStringRef mydevUUIDString = NULL;
NSString *temp = (__bridge NSString *)(mydevUUIDString); 

ただし、このコードを入力すると (これはおそらくあなたが行ったことです):

CFStringRef *mydevUUIDString = NULL;
NSString *temp = (__bridge NSString *)(mydevUUIDString);

私はあなたが得るのと同じエラーを受け取ります:

互換性のない型キャスト 'CFStringRef' (別名 'const struct __CFString **) から 'NSString' への _bridge キャスト。

于 2012-08-28T08:56:10.437 に答える