Xamarin.ios 在MonoTouch中使用EASession时处理NSStream事件
在通过EASession使用附件时,是否有人举过一个如何在Monotouch中处理读写NSStream事件的例子 看起来没有强类型的委托,我很难弄清楚我需要在InputStream和OutputStream的委托上处理什么选择器,以及为了正确填充和清空属于EASession对象的缓冲区,我实际需要对每个选择器执行什么操作 基本上,我现在正在尝试将苹果的EADemo应用程序移植到Monotouch 以下是我认为与此问题相关的Objective-C来源: /Xamarin.ios 在MonoTouch中使用EASession时处理NSStream事件,xamarin.ios,iphone,externalinterface,Xamarin.ios,Iphone,Externalinterface,在通过EASession使用附件时,是否有人举过一个如何在Monotouch中处理读写NSStream事件的例子 看起来没有强类型的委托,我很难弄清楚我需要在InputStream和OutputStream的委托上处理什么选择器,以及为了正确填充和清空属于EASession对象的缓冲区,我实际需要对每个选择器执行什么操作 基本上,我现在正在尝试将苹果的EADemo应用程序移植到Monotouch 以下是我认为与此问题相关的Objective-C来源: / 我也很感激任何关于如何在monotouc
我也很感激任何关于如何在monotouch中最好地实现这一点的架构建议。例如,在Objective C实现中,这些函数不包含在任何类中——但在Monotouch中,让它们成为我的成员有意义吗?它看起来像是最新版本的Monotouch(我必须先升级到iOS 4.2才能获得它)现在为HandleEvent实现了一个强类型委托和一个新的NSStreamEvent类型,因此可以更轻松地处理它:
// asynchronous NSStream handleEvent method
public override void HandleEvent (NSStream theStream, NSStreamEvent streamEvent)
{
switch (streamEvent)
{
case NSStreamEvent.None:
break;
case NSStreamEvent.OpenCompleted:
break;
case NSStreamEvent.HasBytesAvailable:
LowReadData((NSInputStream)theStream);
break;
case NSStreamEvent.HasSpaceAvailable:
LowWriteData((NSOutputStream)theStream);
break;
case NSStreamEvent.ErrorOccurred:
break;
case NSStreamEvent.EndEncountered:
break;
default:
break;
}
}
// asynchronous NSStream handleEvent method
public override void HandleEvent (NSStream theStream, NSStreamEvent streamEvent)
{
switch (streamEvent)
{
case NSStreamEvent.None:
break;
case NSStreamEvent.OpenCompleted:
break;
case NSStreamEvent.HasBytesAvailable:
LowReadData((NSInputStream)theStream);
break;
case NSStreamEvent.HasSpaceAvailable:
LowWriteData((NSOutputStream)theStream);
break;
case NSStreamEvent.ErrorOccurred:
break;
case NSStreamEvent.EndEncountered:
break;
default:
break;
}
}