iPhone OS 3.x-后台异步套接字(如果语句不可行?)
我正在尝试用异步套接字实现后台模式。 以下是一些代码:iPhone OS 3.x-后台异步套接字(如果语句不可行?),iphone,ios,if-statement,background,asyncsocket,Iphone,Ios,If Statement,Background,Asyncsocket,我正在尝试用异步套接字实现后台模式。 以下是一些代码: CFReadStreamRef theReadStream; CFWriteStreamRef theWriteStream; if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 4.0) { CFReadStreamSetProperty (theReadStream, kCFStreamNetworkServiceType, kCFS
CFReadStreamRef theReadStream;
CFWriteStreamRef theWriteStream;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 4.0) {
CFReadStreamSetProperty (theReadStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
CFWriteStreamSetProperty(theWriteStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
}
我知道kCFStreamNetworkServiceType
和kCFStreamNetworkServiceTypeVoIP
在iOS从4.0开始的iPhone中可用
当我从4.0开始将iOS嵌入iPhone时,上述代码确实是可行的
然而,我无法成功地将上述代码构建到带有iOS 3.1的iPhone中
我已经在上述代码中添加了语句,([[[UIDevice currentDevice]systemVersion]floatValue]>=4.0)
我不知道为什么我根本无法进入程序,尤其是我添加了if语句。我认为您遇到了编译时错误,因为您的代码中使用了kCFStreamNetworkServiceType和kCFStreamNetworkServiceTypeVoIP,这在iOS 3.1中不可用。它在iOS 4.0及更高版本中可用。因此,您应该使用#if类型的宏来消除该错误。希望这对您有所帮助。您无法构建。那个么,你们在构建时会遇到什么错误呢?在我用iOS 3.1构建iPhone之后,它只在运行时显示黑屏。然后,我得到了错误,例如:dyld:Symbol not found:_kCFStreamNetworkServiceType我也使用了该语句,
#如果_IPHONE\u OS\u VERSION\u MAX\u ALLOWED>_IPHONE\u 4\u 0
,它仍然不工作。因为kCFStreamNetworkServiceType
和kCFStreamNetworkServiceTypeVoIP
属于常量,我也不能用实例respondtoselector
来避免它。告诉我你是如何使用这个#if语句的。在这里编写代码片段。