【问题标题】:Aren't I allowed to override -sendEvent: in my NSApplication subclass?我不允许在我的 NSApplication 子类中覆盖 -sendEvent: 吗?
【发布时间】:2011-12-13 17:09:31
【问题描述】:

在我的 mac os x 应用程序中,我将 NSApplication 子类化并覆盖它的 -sendEvent: 方法。苹果抱怨:

该应用包括来自框架“/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit”的“OBJC_IVAR_$_NSApplication._delegate”。

对此我能做些什么?我做错了什么?

【问题讨论】:

  • 你能发布你的代码吗?没有任何上下文就不容易破译错误消息...
  • 没有上下文...上述“错误”是苹果支持团队的投诉。他们指责我使用私有 API,这不是真的……
  • @Korion:不,Apple 的支持团队不会在您每次构建时亲自给您写消息。该消息来自编译器,与您对sendEvent: 的覆盖无关(请注意,其中甚至没有提到sendEvent:)。

标签: objective-c macos cocoa nsapplication


【解决方案1】:

您正在通过直接引用_delegate ivar 来访问应用程序委托,如下所示:

NSLog(@"my delegate = %p", _delegate);

你需要使用delegate访问器方法,像这样:

NSLog(@"my delegate = %p", self.delegate);

【讨论】:

  • 哇,好答案!我想添加一些代码,但你得到了答案:D。
猜你喜欢
  • 1970-01-01
  • 2013-02-03
  • 1970-01-01
  • 2016-12-20
  • 1970-01-01
  • 2019-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多