如何在Swift中使用NSStreamEvents?
问题描述:
我无法使用我的NSStream对象抛出的事件。如何在Swift中使用NSStreamEvents?
在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");
}
}
我怎么做,在斯威夫特?我不明白NSStreamEvent参考。在Obj C中它是一个枚举并且在swift中是一个结构体。关于如何使用这个像上面的例子的任何想法?
答
NSStreamEvent符合OptionSetType
斯威夫特2:它被定义为struct
与static var
S代表每个可能的值,所以你可以使用它像一个枚举。
在夫特,选项集由符合OptionSetType协议,为每个选项值静态变量结构表示。选项集的行为与Swift的Set集合类型相似。您使用
insert(_:)
或unionInPlace(_:)
方法添加选项值,remove(_:)
或subtractInPlace(_:)
方法删除选项值,并使用contains(_:)
方法检查选项值。使用数组文本创建新的选项集值,使用类似于枚举的前导点(.
)访问选项值。可以从空数组文字([]
)或通过调用其默认初始值设定项来创建空白选项集。