如何使用Swift中Obj-C类中定义的NS_选项
我必须在Swift项目中使用Objective-C静态库。除了Objective-C头文件中定义的如何使用Swift中Obj-C类中定义的NS_选项,swift,Swift,我必须在Swift项目中使用Objective-C静态库。除了Objective-C头文件中定义的NS_选项enum之外,其他一切都进行得很顺利,如下所示: #import <Foundation/Foundation.h> typedef NS_OPTIONS(NSUInteger, MyOption) { MyOptionNone = 0, MyOptionTop = 1 << 0, MyOptionLeft = 1 <&
NS_选项
enum之外,其他一切都进行得很顺利,如下所示:
#import <Foundation/Foundation.h>
typedef NS_OPTIONS(NSUInteger, MyOption) {
MyOptionNone = 0,
MyOptionTop = 1 << 0,
MyOptionLeft = 1 << 1,
MyOptionBottom = 1 << 2,
MyOptionRight = 1 << 3
};
@interface MyObjcClass : NSObject
@end
然后我得到编译错误:
Binary operator '&' cannot be applied to two `MyOption` operands
如何解决此问题?首先,您需要修复语法。右大括号后需要一个分号:
typedef NS_OPTIONS(NSUInteger, MyOption) {
MyOptionNone = 0,
MyOptionTop = 1 << 0,
MyOptionLeft = 1 << 1,
MyOptionBottom = 1 << 2,
MyOptionRight = 1 << 3
};
typedef NS_选项(NSUInteger,MyOption){
MyOptionNone=0,
MyOptionTop=1首先,您需要修复语法。右大括号后需要一个分号:
typedef NS_OPTIONS(NSUInteger, MyOption) {
MyOptionNone = 0,
MyOptionTop = 1 << 0,
MyOptionLeft = 1 << 1,
MyOptionBottom = 1 << 2,
MyOptionRight = 1 << 3
};
typedef NS_选项(NSUInteger,MyOption){
MyOptionNone=0,
MyOptionTop=1嗨,rob,我知道这一点,但是如果我想在switch case中使用MyOption呢?“case.Top”将导致编译错误:枚举case“Top”在类型MyOption中找不到在切换情况下使用它是没有意义的,因为MyOption
值可能包含多个选项,例如,它可能同时包含.Top
和.Bottom
,因此它需要匹配多个情况,而Swift switch语句不能这样做。如果选项.contains(.Top),则应使用{…}if options.contains(.Bottom){…}
.Hi~我遇到了另一个问题。你能帮我吗?嗨,rob,我知道这一点,但如果我想在开关大小写中使用MyOption怎么办?“case.Top”将导致编译错误:枚举大小写“Top”在类型MyOption中找不到在切换情况下使用它是没有意义的,因为MyOption
值可能包含多个选项,例如,它可能同时包含.Top
和.Bottom
,因此它需要匹配多个情况,而Swift switch语句不能这样做。如果选项.contains(.Top),则应使用{…}如果options.contains(.Bottom){…}
.Hi~我遇到了另一个问题。你能帮我吗?