2014-08-30 55 views
0

我無法使用我的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中是一個結構體。關於如何使用這個像上面的例子的任何想法?

回答

0

NSStreamEvent符合OptionSetType斯威夫特2:它被定義爲structstatic var S代表每個可能的值,所以你可以使用它像一個枚舉。

Enumerations

在夫特,選項集由符合OptionSetType協議,爲每個選項值靜態變量結構表示。選項集的行爲與Swift的Set集合類型相似。您使用insert(_:)unionInPlace(_:)方法添加選項值,remove(_:)subtractInPlace(_:)方法刪除選項值,並使用contains(_:)方法檢查選項值。使用數組文本創建新的選項集值,使用類似於枚舉的前導點(.)訪問選項值。可以從空數組文字([])或通過調用其默認初始值設定項來創建空白選項集。

相關問題