我还有一个假设的问题。
我创建了函数:
-(IBAction)text:(id)sender{
UITextView * textview = [[UITextView alloc]initWithFrame:CGRectZero];
}
因为我使用ARC我希望当函数超出范围时会释放该对象。 但是使用Instrument我检测到内存没有被释放。
有谁知道为什么?
答案 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”时会释放该对象。 (虽然我不确定最后一点。)。