我在使用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中是枚举,在swift中是结构。关于如何像上面的例子一样使用这个,有什么想法吗?
NSStreamEvent符合Swift 2中的OptionSetType
:它被定义为一个struct
,每个可能的值都有static var
s,所以你可以像枚举一样使用它。
来自枚举:
在Swift中,选项集由符合OptionSetType协议的结构表示,每个选项值都有静态变量。选项集的行为与Swift的Set集合类型类似。使用
insert(_:)
或unionInPlace(_:)
方法添加选项值,使用remove(_:)
或subtractInPlace(_:)
方法删除选项值,并使用contains(_:)
方法检查选项值。使用数组文字创建一个新的选项集值,使用类似于枚举的前导点(.
)访问选项值。可以从空数组文字([]
)或通过调用其默认初始值设定项来创建空选项集。