使用ARC,如何确保CTFrameRef
属性未被释放?我目前正在使用assign
属性,这显然不是我想做的事情
编辑我的解决方案基于@KevinBallard回答:
- (void)setCoreTextFrame:(CTFrameRef)coreTextFrame
{
_coreTextFrame = CFRetain(coreTextFrame);
}
- (void)dealloc
{
CFRelease(_coreTextFrame);
}
答案 0 :(得分:0)
CTFrameRef
不是obj-c对象。它遵循CoreFoundation内存管理规则,因此您可以使用CFRetain()
保留它并将其与CFRelease()
一起发布。
基本上,处理CTFrameRef
的代码看起来与非ARC代码相同。