0

非同期ソケットでバックグラウンドモードを実装しようとしています。以下はいくつかのコードです:

CFReadStreamRef theReadStream;
CFWriteStreamRef theWriteStream;

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 4.0) {        
    CFReadStreamSetProperty (theReadStream,  kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
    CFWriteStreamSetProperty(theWriteStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); 
}  

私は知っkCFStreamNetworkServiceTypekCFStreamNetworkServiceTypeVoIPいて、iOSが4.0から始まったiPhoneで利用できます。

上記のコードは、iOSを搭載したiPhoneに4.0で組み込んだときに実際に機能しました。

ただし、iOS3.1を搭載したiPhoneに上記のコードを正常に組み込むことができませんでした。

([[[UIDevice currentDevice] systemVersion] floatValue] >= 4.0)上記のコードにステートメントを追加しました。

プログラムにまったく参加できなかった理由がわかりません。特にifステートメントを追加しました。

4

1 に答える 1

0

iOS 3.1 では利用できないコードで kCFStreamNetworkServiceType と kCFStreamNetworkServiceTypeVoIP を使用しているため、コンパイル時エラーが発生していると思います。iOS 4.0 以降で利用できます。したがって、#if のようなマクロを使用して、そのエラーを取り除く必要があります。お役に立てば幸いです。

于 2012-07-30T04:15:35.540 に答える