【问题标题】:How can I use NSTextView in block?如何在块中使用 NSTextView?
【发布时间】:2015-12-29 09:20:14
【问题描述】:

我们知道Apple Transitioning to ARC Release Notes

哪些类不支持弱引用?

您目前无法创建对以下类实例的弱引用:

NSATSTypesetter、NSColorSpace、NSFont、NSMenuView、NSParagraphStyle、NSSimpleHorizo​​ntalTypesetter 和 NSTextView。

注意:此外,在 OS X v10.7 中,您不能创建对 NSFontManager、NSFontPanel、NSImage、NSTableCellView、NSViewController、NSWindow 和 NSWindowController 实例的弱引用。此外,在 OS X v10.7 中,AV Foundation 框架中没有类支持弱引用。

所以问题是How can use NSTextView in block?,如果不使用 weak ,该块将持有强 NSTextView ref。

我担心应用程序无法释放 NSTextView。

我该怎么办?

【问题讨论】:

  • 你可以使用 __block 关键字,或者如果创建一个 NSTestView 的属性,你必须写 __weak typeof(self) weakself = self;

标签: ios objective-c block nstextview


【解决方案1】:

在下面试试:

NSTextView * __block textView = [[NSTextView alloc] init…];

为此添加 __block 以在块中解决并出于发布目的,您需要在完成块中或根据您的使用情况显式释放它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多