我需要在Objective-C中访问Swift Package Manager的Bundle.module等效物。我尝试了Objective-C中的Bundle.module,但没有成功。以下是我们在Swift中的访问方式:
public let settingsURL = Bundle.module.url(forResource: “settings”, withExtension: “plist”)
有没有猜想objective-c中的等价物是什么?
这里是苹果文档页面。
我需要在Objective-C中访问Swift Package Manager的Bundle.module等效物。我尝试了Objective-C中的Bundle.module,但没有成功。以下是我们在Swift中的访问方式:
public let settingsURL = Bundle.module.url(forResource: “settings”, withExtension: “plist”)
有没有猜想objective-c中的等价物是什么?
这里是苹果文档页面。
哦!?有时这两种美丽的语言之间的事情变得如此奇怪。我找到了解决方案:
NSString *path = [SWIFTPM_MODULE_BUNDLE pathForResource:@"settings" ofType:@"plist"];
如此简单,对吧?:)
如需更多信息,请查看相关提案(SE-0271)。
对于Objective-C,构建系统将添加一个名为SWIFTPM_MODULE_BUNDLE的预处理器定义,可用于从任何.m文件访问bundle。
swift test
时出现“使用未声明的标识符'SWIFTPM_MODULE_BUNDLE'”错误而来到这里,请知道这是Swift Package Manager已知问题。 - mokagio.iOS(.v14)+
才能获得此宏。 - markshiz