Besetzung von Objective-C Typ pointer 'NSString *' in C Zeiger Typ 'CFStringRef' (aka 'const struct __CFString *') erfordert eine bridged-cast

Beim umwandeln eines Objective-C-Programm, um eine Objective-C ARC, bekomme ich die Fehlermeldung:

"cast of Objective-C pointer type 'NSString *' to C pointer type 'CFStringRef' (aka 'const struct __CFString *') requires a bridged cast "

Der code ist wie folgt:

- (NSString *)_encodeString:(NSString *)string
{
    NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, 
                                   (CFStringRef)string, //this is line in error
                                   NULL, 
                                   (CFStringRef)@";/?:@&=$+{}<>,",
                                   kCFStringEncodingUTF8);
    return [result autorelease];
}

Was ist ein bridged-cast?

Besetzung von Objective-C Typ pointer 'NSString *' in C Zeiger Typ 'CFStringRef' (aka 'const struct __CFString *') erfordert eine bridged-cast

Sie können '_bridge' oder 'CFBridgingRetain' um diesen Fehler zu beheben.

InformationsquelleAutor Michael Rowe | 2011-07-17

Schreibe einen Kommentar