Ios 转换为ARC时NSMakeCollectable出现问题
我正在尝试将我的代码转换为ARC,但我在ASIRestRequest库中遇到了NSMakeCollectable问题Ios 转换为ARC时NSMakeCollectable出现问题,ios,automatic-ref-counting,Ios,Automatic Ref Counting,我正在尝试将我的代码转换为ARC,但我在ASIRestRequest库中遇到了NSMakeCollectable问题 - (NSString*)encodeURL:(NSString *)string { NSString *newString = NSMakeCollectable([(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CF
- (NSString*)encodeURL:(NSString *)string
{
NSString *newString = NSMakeCollectable([(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding([self stringEncoding])) autorelease]);
if (newString) {
return newString;
}
return @"";
}
我也试过:
- (NSString*)encodeURL:(NSString *)string
{
NSString *newString = NSMakeCollectable([(__bridge_transfer NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding([self stringEncoding])) autorelease]);
if (newString) {
return newString;
}
return @"";
}
-(NSString*)编码URL:(NSString*)字符串
{
NSString*newString=NSMakeCollectable([(\uu桥\u传输NSString*)CFURLCreateStringByAddingPercentEscape(kCFAllocatorDefault,(CFStringRef)字符串,NULL,CFSTR(:/?\u35;[]@!$&'()*+,;=\“%{}\\\ ^`),CFSTRingConvertNSStringEncoding到Encoding([自stringEncoding])自动释放]);
如果(新闻字符串){
返回新闻字符串;
}
返回@”;
}
在ARC中不再需要NSMakeCollectable
。您可以在此处使用CfBrigingRelease
- (NSString*)encodeURL:(NSString *)string
{
NSString *newString = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding([self stringEncoding])));
// or NSString *newString = (__bridge_transfer NSString*)(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding([self stringEncoding]));
if (newString) {
return newString;
}
return @"";
}
-(NSString*)编码URL:(NSString*)字符串
{
NSString*newString=CfBrigingRelease(CfURLCreateStringByAddingPercentescape(kCFAllocatorDefault,(CFStringRef)字符串,NULL,CFSTR(“:/?#[]@!$&'”)(*+,;=“%{}124;\ ^`),CfStringConvertNSStringEncoding到Encoding([自stringEncoding]);
//或NSString*newString=(\uu桥\u传输NSString*)(CFURLCreateStringByAddingPercentEscapes(kcfolcatorDefault,(CFStringRef)字符串,NULL,CFSTR(“:/?\u35;[]@!$&')(*+,;=\”%{}\ 124;\^`),cfStringConvertNSStringEncoding编码([自stringEncoding]);
如果(新闻字符串){
返回新闻字符串;
}
返回@”;
}
检查此项并尝试它..不工作..不工作..我编辑了我的问题..您更改了错误的行,如果仔细阅读链接,您将看到使用ARC时,NSMakeCollectable
功能不可用,这是您必须修改的行,否返回再次编辑了问题。请查看。。。
- (NSString*)encodeURL:(NSString *)string
{
NSString *newString = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding([self stringEncoding])));
// or NSString *newString = (__bridge_transfer NSString*)(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding([self stringEncoding]));
if (newString) {
return newString;
}
return @"";
}