0

我正在尝试使用异步套接字实现后台模式。以下是一些代码:

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 语句。

4

1 回答 1

0

我认为您遇到了编译时错误,因为您在代码中使用了 kCFStreamNetworkServiceType 和 kCFStreamNetworkServiceTypeVoIP,这在 iOS 3.1 中不可用。它在 iOS 4.0 及更高版本中可用。因此,您应该使用#if 类型的宏来消除该错误。希望对你有帮助。

于 2012-07-30T04:15:35.540 回答