これを使用してNSDataを設定すると、writeDataメソッドがクラッシュします。asyncSocket writeDataが異なるNSDataでクラッシュする
NSString *test = @"The quick brown fox jumped over the lazy dog\r\n";
NSData *data = [test dataUsingEncoding:NSUTF8StringEncoding];
[asyncSocket writeData:data withTimeout:10 tag:4];
私はこの1つを使用している場合しかし、それは動作します...しかし、私は私が送信するためにフォーマットされた文字列を入力することができますNSStringのを必要とする...
char bytes[] = "The quick brown fox jumped over the lazy dog\r\n";
NSData* data = [[NSData alloc] initWithBytes:bytes length:sizeof(bytes)];
[asyncSocket writeData:data withTimeout:10 tag:4];
は、だから私は間違って何をしましたか?
理論的には、NSDataの上記の両は、それらの正確な同じビットを持っている...行うとのNSLogのNSDataの両方のケースでは、ログ出力を比較... – amattn
@amattn、いや、彼らが行う必要があります同じビットを持たない - char []はnullで終了するので、文字列は0d0a00で終了するが、最初のバージョンでは0d0aで終了する。 – Roger
もう1つの問題は、2番目のバージョンでメモリリークが発生していることです。 asyncSocketなので、asyncSocketが最初の例のデータを保持していないのだろうか? – amattn