【问题标题】:NSWorkspace throwing error when bridging library with swift使用 swift 桥接库时 NSWorkspace 抛出错误
【发布时间】:2015-03-13 23:50:29
【问题描述】:

我正在使用 pocket api 并将其与 swift 一起使用,它在其 obj-c API 中为以下行抛出错误“语义问题:使用未声明的标识符 'NSWorkspace'”:

[[NSWorkspace sharedWorkspace] openURL:url];

该应用的目标操作系统为 10.9+,因此应该可用。

关于什么可能导致该错误的任何想法?

更新 我也在 iOS 中进行了测试,它返回了相同的错误,但使用的是 'UIApplication' 而不是 'NSWorkspace'。

我还忘了提到我必须在 Build Phases 选项卡中使用 -fno-objc-arc 标志,这样 lib 才不会因为 ARC 而崩溃。

【问题讨论】:

  • 您正在编写应用程序扩展吗?某些 API 不适用于应用扩展。
  • 不,标准 mac 应用程序。我什至还没有通过 AppDelegate 还试图解决这个错误。

标签: objective-c swift pocket


【解决方案1】:

通过在 PocketAPI.mPocketAPILogin.m 中的导入之后添加以下代码,让它在 iOS 和 OSX 上运行:

#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
   #import <UIKit/UIKit.h>
#endif

#ifdef __MAC_OS_X_VERSION_MAX_ALLOWED
   #import <Appkit/AppKit.h>
#endif

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 2021-04-08
    相关资源
    最近更新 更多