我在 Xcode 8.2(构建目标 8.0)的 swift 2.3 代码中调用了一个 Objective-C 方法。它接受一个 NS_ENUM 作为参数:
typedef NS_ENUM(NSUInteger, MLCMultipleChoiceSlideSubtype) {
MLCMultipleChoiceSlideSubtypeQA,
MLCMultipleChoiceSlideSubtypeFillInTheBlank,
MLCMultipleChoiceSlideSubtypeUnknown
};
包含此枚举和方法的 .h 文件位于我的 bridging-header.h 文件中。这是 objc 方法的签名:
+ (nullable instancetype)slideWithSubtype:(MLCMultipleChoiceSlideSubtype)subtype testSlide:(nonnull TestSlide *)slide distractorFinder:(nonnull MultipleChoiceDistractorFinder *)distractorFinder;
然后我像这样从 Swift 2.3 调用它:
if let mcSlide = MultipleChoiceSlide(subtype: .QA, testSlide: slide, distractorFinder: distractorFinder) {
return mcSlide
}
当我编译它以进行调试并运行它时,这工作正常。但是,当我尝试将其存档并编译发布时,我收到以下消息:
... LessonConvertToMultipleChoiceOperation.swift:55:64: Static member 'QA' cannot be used on instance of type 'MLCMultipleChoiceSlideSubtype'
我不知道为什么这只会在我归档构建或如何修复它时发生。
编辑:根据我在其他地方看到的类似问题的答案,我在我的方案中将存档构建配置从 Release 更改为 Debug,现在它存档了。然而,这似乎不是一件好事。通过这样做,存档会包含我的调试符号吗?