objective-c – 在Swift Project中使用在目标C中声明的NS_Option
发布时间:2020-12-16 07:13:50 所属栏目:百科 来源:网络整理
导读:我在目标C中声明了枚举NS_OPTION typedef NS_OPTIONS(NSUInteger,PHRendererType){ PHRendererTypeSampleBuffer,PHRendererTypeOpenGLES,PHRendererTypeQuartz}; 但是,当我尝试通过调用在Swift项目中使用时. if rendererType == .PHRendererTypeSampleBuffer
我在目标C中声明了枚举NS_OPTION
typedef NS_OPTIONS(NSUInteger,PHRendererType) { PHRendererTypeSampleBuffer,PHRendererTypeOpenGLES,PHRendererTypeQuartz }; 但是,当我尝试通过调用在Swift项目中使用时. if rendererType == .PHRendererTypeSampleBuffer{ } 它无法编译错误:表达式类型不明确没有更多上下文. 我也访问了这个话题Swift: Trouble Using Enums Declared in Objective-C,In Swift,但它没有解决我的问题 谢谢你的帮助. 解决方法
您链接的问题确实为您的问题提供了解决方案:
if rendererType == .SampleBuffer { } 当您将枚举定义为NS_OPTIONS(类型,EnumPrefix)时,从Swift中的所有引用中删除EnumPrefix.但是,请注意,在您破坏Objective-C中的命名约定时,此快捷方式将无效: // 1. typedef NS_OPTIONS(NSUInteger,PHRendererTypeQuartz,SomethingElse }; // Now you have to use the full enum name: if renderedType == .PHRendererTypeSampleBuffer { } // 2. Follow the naming convention and you can use the shortcut again: typedef NS_OPTIONS(NSUInteger,PHRendererTypeSomethingElse }; if renderedType == .SomethingElse { } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |