【问题标题】:How to clean NSTextView?如何清理 NSTextView?
【发布时间】:2019-05-25 04:43:03
【问题描述】:

我需要无限次地清理 NSTextView。我使用以下代码执行此操作:

@property IBOutlet NSTextView *textView;
```
[self.textView setString:@""];

但如果使用次数不受限制,此代码会溢出内存。作为一个简短的示例,此代码:

loop:
[self.textView setString:@""];
goto loop;

很快就会溢出内存。 如何在不溢出内存的情况下无限次清理 NSTextView?

【问题讨论】:

  • 你想做什么?您只需将其设置为@"" 一次。为什么要反复做?
  • 我必须设置一次才能清理一次。如果我需要再次清洁它,那么我必须再次调用它。这个“重复”的例子只是说明这个操作会消耗内存而不是释放它。

标签: objective-c nstextview


【解决方案1】:

如您所见,以下内容会无限消耗内存:

while (true) {
    self.textView.string = @"";
}

但是,这使用了固定数量的内存:

while (true) {
    @autoreleasepool {
        self.textView.string = @"";
    }
}

【讨论】:

  • 非常感谢!这正是解决方案。我以为 ARC 不需要 autoreleasepool,但我错了!
猜你喜欢
  • 1970-01-01
  • 2020-04-16
  • 2011-04-21
  • 2017-01-02
  • 2015-12-31
  • 2015-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多