Tôi có một lớp danh mục cho NSString.Cầu nối đúng cho 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;
}
Tôi có sử dụng chuyển giao cầu chính xác cho ARC và LLVM mới không?
Mã gốc:
- (NSString *)URLEncodedString
NSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)self,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
return [encodedString autorelease];
}
Cảm ơn bạn - điều này đã giúp vô cùng. Tôi chỉ muốn chắc chắn rằng sự hiểu biết của tôi về các tài liệu đã được áp dụng một cách chính xác. –
Tôi có thể thêm rằng sử dụng macro 'CFBridgingRelease()' làm cho việc truyền và tiêu thụ các đối tượng CFType dễ đọc hơn - ít nhất là trong mắt tôi. ví dụ. 'NSData * imageData = CFBridgingRelease (ABPersonCopyImageData (người))' – monkeydom