UITextView不与ARC一起发布

时间:2013-02-01 08:25:31

标签: iphone ios memory automatic-ref-counting uitextview

我还有一个假设的问题。

我创建了函数:

-(IBAction)text:(id)sender{
    UITextView * textview = [[UITextView alloc]initWithFrame:CGRectZero];
}

因为我使用ARC我希望当函数超出范围时会释放该对象。 但是使用Instrument我检测到内存没有被释放。

有谁知道为什么?

2 个答案:

答案 0 :(得分:0)

ARC将自动发布/释放textView,它是否为零


将它全部包装在@autoreleasepool中以便这样做!

-(IBAction)text:(id)sender{
   @autoreleasepool {
        UITextView * textview = [[UITextView alloc]initWithFrame:CGRectZero];
    }
}

第一次使用textview时的初始增长:分配了可可触摸文本系统。 (所有textviews共享的基础“引擎”)

答案 1 :(得分:-5)

如果你想让它实际释放,试试这个。

-(IBAction)text:(id)sender{
    UITextView * textview = [[UITextView alloc]initWithFrame:CGRectZero];
    textview = nil;
}

ARC只会自动添加一个发布代码,它不像其他语言那样是垃圾收集器。只要你给一个对象nil就会立即释放它。否则,当刷新“autoreleasepool”时会释放该对象。 (虽然我不确定最后一点。)。