Mam klasę kategorii dla NSString.Prawidłowe pomost dla ARC?
@implementation NSString (URLEncode)
- (NSString *)URLEncodedString
{
__autoreleasing NSString *encodedString;
NSString *originalString = (NSString *)self;
encodedString = (__bridge_transfer NSString *)
CFURLCreateStringByAddingPercentEscapes(NULL,
(__bridge CFStringRef)originalString,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
return encodedString;
}
Czy używam poprawnych transferów mostów dla ARC i nowego LLVM?
Oryginalny kod:
- (NSString *)URLEncodedString
NSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)self,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
return [encodedString autorelease];
}
Dziękuję - to pomogło niezmiernie. Chciałem tylko upewnić się, że moje rozumienie dokumentów zostało poprawnie zastosowane. –
Mogę dodać, że użycie makra 'CFBridgingRelease()' sprawia, że przesyłanie i używanie obiektów CFType jest łatwiejsze do odczytania - przynajmniej w moich oczach. na przykład 'NSData * imageData = CFBridgingRelease (ABPersonCopyImageData (osoba))' – monkeydom