下面的代码是NON ARC代码,有人可以告诉我如何将其转换为ARC吗?当我使用它来编码url时,它会发生内存泄漏。

#import "NSString+EncodeURIComponent.h"

@implementation NSString (EncodeURIComponent)

+ (NSString*)stringEncodeURIComponent:(NSString *)string {
    return [((NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                                (CFStringRef)string,
                                                                NULL,
                                                                (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                                kCFStringEncodingUTF8)) autorelease];
}

@end

提前致谢..

#1楼 票数:3 已采纳

return CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                            (__bridge CFStringRef)string,
                                            NULL,
                                            CFSTR("!*'();:@&=+$,/?%#[]"),
                                            kCFStringEncodingUTF8));

这是以下内容:

  • 删除autorelease
  • 使用CFBridgingRelease()将Core Foundation对象传递给ARC。 这样可以平衡Create 原则上(尽管不是实现),Core Foundation执行CFRelease()而ARC执行objc_retain()
  • 在使用string添加_bridge大小写。 这告诉编译器您没有在ARC和Core Foundation之间转移所有权。 您只希望Core Foundation使用ARC变量。
  • 使用CFSTR()创建一个恒定的Core Foundation字符串。 这比创建一个常量NSString然后将其强制转换为Core Foundation更为方便。

请参阅《 过渡到ARC发行说明 》中的“管理免费电话桥接”。

  ask by malhaar translate from so

未解决问题?本站智能推荐:

2回复

拆分nsstring并放入tableview

我正在尝试将字符串拆分为多个部分,然后插入表格中,该怎么办? 我在拆分数组时遇到错误,它是:-[__ NSArrayI componentsSeparatedByString:]:无法识别的选择器已发送到实例0x7a421e0 这是我要拆分的字符串,我是从NSLog上获得的
1回复

当我在对象中搜索NSString时如何确定对象在NSMutableArray中的索引?

目前,我正在使用表中显示的数据库中的数据来编码UISearchBar的搜索功能。 我找出搜索结果并将其保存到NSMutableArray *searchResults 。 看起来是这样的: listOfWines还是一个NSMutableArray,其中包含可以搜索的所有名称的列表。
2回复

NSString \\ 0

启动包含@“\\ 0”的NSString的最佳方法是什么? 导致'CFString文字包含NUL字符'警告。
2回复

使用NSString作为NSString数组?

我只是碰到了一个由同事编写的代码行,而我以前从未在Obj-C中见过。 看起来格式很差,我想更改它,但是它似乎可以正常运行(该应用程序按预期运行),我什至不知道将其更改为什么。 这个可以吗? NSArrays的NSStrings更有意义吗? 编辑:为了适当地从内存中release
8回复

NSString为空

如何测试NSString是否为空? 或所有空格或零? 用一个方法调用?
7回复

NSString 到 NSArray

我想将NSString拆分为NSArray 。 例如,给定: 我想要一个NSArray像: 如何用 Objective-C 和 Cocoa 做到这一点?
3回复

NSString到NSSArray

我们如何将一组NSString对象存储到单个数组.....从index = 0开始;
2回复

如何处理此NSString?

我从API读取数据,然后看到以下字符串: text = "\\n\\Ufeff211419"; 如何处理它得到结果: 211419 ? 我使用了NSString trim函数,但是没有用。 非常感谢你!