iPhone SDK – NSStreamEventHasBytesAvailableappendBytes:崩溃

iPhone SDK – NSStreamEventHasBytesAvailableappendBytes:崩溃,第1张

概述免责声明:我是 Xcode / iPhone SDK Noob. 我正在尝试建立与现有服务器的客户端TCP / IP连接.连接后,我希望收到一些有关服务器的数据(版本等). 建立连接后,NSStreamEventOpenCompleted事件将触发,因此我知道已建立连接.接下来,NSStreamEventHasBytesAvailable事件将触发,我正在执行以下代码.值71(int)存储在len 免责声明:我是 Xcode / iPhone SDK Noob.

我正在尝试建立与现有服务器的客户端TCP / IP连接.连接后,我希望收到一些有关服务器的数据(版本等).

建立连接后,NsstreamEventopenCompleted事件将触发,因此我知道已建立连接.接下来,NsstreamEventHasBytesAvailable事件将触发,我正在执行以下代码.值71(int)存储在len中,我认为这是正确的.但是,行

[data appendBytes:&buffer length:len];

正在崩溃(我想).没有抛出实际错误,但我确实看到了__TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION__,即使我已经清楚地添加了错误捕获:

case NsstreamEventHasBytesAvailable:    {        NSMutableData *data=[[NSMutableData alloc] init];        uint8_t *buffer[1024];        unsigned int len=0;        len=[(NSinputStream *)stream  read:buffer maxLength:1024];        if(len>0){              @try{                [data appendBytes:&buffer length:len];            }            @catch(NSException *ex){                NSLog(@"Fail: %@",ex);             }            [statusLabel setText:[data stringValue]];            //[bytesRead setIntValue:[bytesRead intValue]+len];        }else{            NSLog(@"No Buffer");        }        break ;    }
解决方法 将缓冲区声明为:

uint8_t buffer[1024];

并附加为:

[data appendBytes:buffer length:len];
总结

以上是内存溢出为你收集整理的iPhone SDK – NSStreamEventHasBytesAvailable / appendBytes:崩溃全部内容,希望文章能够帮你解决iPhone SDK – NSStreamEventHasBytesAvailable / appendBytes:崩溃所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1003396.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存