什么是Objective-C中等同于SPM Bundle.module的东西?

4

我需要在Objective-C中访问Swift Package Manager的Bundle.module等效物。我尝试了Objective-C中的Bundle.module,但没有成功。以下是我们在Swift中的访问方式:

public let settingsURL = Bundle.module.url(forResource: “settings”, withExtension: “plist”)

有没有猜想objective-c中的等价物是什么?

这里是苹果文档页面

1个回答

11

解决方案

哦!?有时这两种美丽的语言之间的事情变得如此奇怪。我找到了解决方案:

NSString *path = [SWIFTPM_MODULE_BUNDLE pathForResource:@"settings" ofType:@"plist"];

如此简单,对吧?:)

如需更多信息,请查看相关提案(SE-0271)

对于Objective-C,构建系统将添加一个名为SWIFTPM_MODULE_BUNDLE的预处理器定义,可用于从任何.m文件访问bundle。


1
如果您因在运行swift test时出现“使用未声明的标识符'SWIFTPM_MODULE_BUNDLE'”错误而来到这里,请知道这是Swift Package Manager已知问题 - mokagio
2
请注意:您必须针对平台.iOS(.v14)+才能获得此宏。 - markshiz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接