2

アプリをiOS5に移植しようとしています。CFSocketsを介してサーバーへのTCP接続を使用しています。私の問題は、CFReadStreamRefからNSInputStreamへの変換(キャスト)です(書き込みと同じ)。iOS4では、フリーダイヤルブリッジを使用できましたが、iOS5の自動参照カウントでは、これはもう不可能です。これは私が得るものです:

error: Automatic Reference Counting Issue: Cast to 'NSInputStream *' of a non-Objective-C to an Objective-C pointer is disallowed with Automatic Reference Counting

コード:

        CFReadStreamRef readStream;
        CFWriteStreamRef writeStream;

        CFStringRef strRef = CFStringCreateWithCString(NULL,
              [urlStr UTF8String],
              NSUTF8StringEncoding);
        CFStreamCreatePairWithSocketToHost(NULL,
           strRef,
           4444,
           &readStream,
           &writeStream);



        NSInputStream *iStream = (NSInputStream *)readStream;
        NSOutputStream *oStream = (NSOutputStream *)writeStream;         

ソケットをNSStreamにパイプアウト/入力する別の方法はありますか?ヒントをありがとう!

4

1 に答える 1

2

フリーダイヤルブリッジの管理では、次のようなものを使用する必要があることが非常に明確に示されています。

NSInputStream *iStream = objc_unretainedObject(readStream);
于 2011-06-17T23:18:55.430 に答える