我无法使用我的NSStream对象抛出的事件。
在obj C中它是这样的:
- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent {
switch (streamEvent) {
case NSStreamEventOpenCompleted:
NSLog(@"Stream opened");
break;
case NSStreamEventHasBytesAvailable:
break;
case NSStreamEventErrorOccurred:
NSLog(@"Can not connect to the host!");
break;
case NSStreamEventEndEncountered:
break;
default:
NSLog(@"Unknown event");
}
}
我如何在Swift中做到这一点?我不明白NSStreamEvent引用。在Obj C中它是一个Enum并且在swift中它是一个结构。关于如何使用它的任何想法都像上面的例子一样?
答案 0 :(得分:0)
NSStreamEvent符合Swift 2中的OptionSetType
:对于每个可能的值,它被定义为struct
static var
,因此您可以像枚举一样使用它。
来自Enumerations:
在Swift中,选项集由符合OptionSetType协议的结构表示,每个选项值都有静态变量。选项集的行为类似于Swift的Set集合类型。您可以使用
insert(_:)
或unionInPlace(_:)
方法添加选项值,使用remove(_:)
或subtractInPlace(_:)
方法删除选项值,使用contains(_:)
方法检查选项值期权价值。您可以使用数组文字创建新的选项集值,使用类似于枚举的前导点(.
)访问选项值。可以从空数组文本([]
)或通过调用其默认初始化程序创建空选项集。