它正确地发送数据.我看到一个奇怪的问题,如果iOS设备屏幕在从iOS应用程序发送数据时关闭,然后如果我在设备上屏幕,然后我收到以下错误,应用程序已经与套接字断开连接或有时它会崩溃应用程序:
Error writing to stream <__NSCFOutputStream: 0x1f5dd120>: Error Domain=NSPOSIXErrorDomain Code=32 "The operation Couldn’t be completed. broken pipe" Stream space : 0 NsstreamEventErrorOccurred - Can not connect to the host
当设备屏幕关闭时,我的iOS应用程序停止向套接字发送数据.然后再打开屏幕,插座连接断开/断开管道错误.怎么解决?
我搜索但还没找到解决方案.有人可以请问这个问题可能是什么原因以及如何解决这个问题?
解决方法
1.禁用空闲计时器:此代码将阻止您的iPhone在您的应用程序运行时进入休眠状态.我不确定这是否会阻止设备锁定,但您可以使用UIApplication的idleTimerdisabled属性来防止屏幕变暗.
[UIApplication sharedApplication].idleTimerdisabled = YES;
从文档:
Important: You should set this property only if necessary and should be sure to reset it to NO when the need no longer exists. Most applications should let the system turn off the screen when the idle timer elapses. This includes audio applications. With appropriate use of Audio Session Services,playback and recording proceed uninterrupted when the screen turns off. The only applications that should disable the idle timer are mapping applications,games,or similar programs with sporadic user interaction.
2.制作具有后台支持的应用程序:您可以在Background Modes in iOS上关注本教程.
以下是iOS中可用的五种基本背景模式的快速概述:
>播放音频:应用程序可以在后台继续播放和/或录制音频.
>接收位置更新:随着设备位置的变化,应用可以继续获得回调.
>执行有限长度的任务:通用的“无论”情况,应用程序可以在有限的时间内运行任意代码.
>流程报亭套件下载:特定于报亭应用程序,该应用程序可以在后台下载内容.
>提供IP语音(VoIP)服务:应用程序可以在后台运行任意代码.当然,Apple限制其使用
你的应用程序也必须提供VoIP服务.
VOIP后台模式允许您的应用在后台运行任意代码.此模式优于“Whatever”API,因为您可以无限期地运行代码.更好的是,如果应用程序崩溃或用户重新启动手机,应用程序将在后台自动启动.如果您有兴趣,可以按照苹果提供的Tips for Developing a VoIP App进行操作.您的应用需要为用户提供某种VoIP功能,否则Apple会拒绝您的应用.