Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.ios 在MonoTouch中使用EASession时处理NSStream事件_Xamarin.ios_Iphone_Externalinterface - Fatal编程技术网

Xamarin.ios 在MonoTouch中使用EASession时处理NSStream事件

Xamarin.ios 在MonoTouch中使用EASession时处理NSStream事件,xamarin.ios,iphone,externalinterface,Xamarin.ios,Iphone,Externalinterface,在通过EASession使用附件时,是否有人举过一个如何在Monotouch中处理读写NSStream事件的例子 看起来没有强类型的委托,我很难弄清楚我需要在InputStream和OutputStream的委托上处理什么选择器,以及为了正确填充和清空属于EASession对象的缓冲区,我实际需要对每个选择器执行什么操作 基本上,我现在正在尝试将苹果的EADemo应用程序移植到Monotouch 以下是我认为与此问题相关的Objective-C来源: / 我也很感激任何关于如何在monotouc

在通过EASession使用附件时,是否有人举过一个如何在Monotouch中处理读写NSStream事件的例子

看起来没有强类型的委托,我很难弄清楚我需要在InputStream和OutputStream的委托上处理什么选择器,以及为了正确填充和清空属于EASession对象的缓冲区,我实际需要对每个选择器执行什么操作

基本上,我现在正在尝试将苹果的EADemo应用程序移植到Monotouch

以下是我认为与此问题相关的Objective-C来源:

/


我也很感激任何关于如何在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;
    }
}