2
NSStringで本当に本当に奇妙な問題があります。入力ストリームから読み込んでデータを文字列に変換すると、その文字列と同じものを設定することができません。コードは次のとおりです。Objc NSStringを別のものに設定するときのEXC_BAD_ACCESS
NSString *name = r.URL.lastPathComponent;
NSString *data;
NSInputStream *stream = r.HTTPBodyStream;
uint8_t byteBuffer[1];
[stream open];
if (stream)
{
// Get the request body from the stream. Used for setting the file name
if (stream.hasBytesAvailable)
{
NSInteger bytesRead = [stream read:byteBuffer maxLength:4096];
NSString *temp = [[NSString alloc] initWithBytes:byteBuffer length:bytesRead encoding:NSUTF8StringEncoding];
data = temp; // EXC_BAD_ACCESS thrown here
}
}
文字列を別の文字列にコピーする必要がありますが、できません。誰がなぜこれが起こっているのか知っていますか?
あなたは絶対に正しいです、その行動はとても奇妙でした。私は「何が起こっているか」のようでした。しかし、確かに、私はメモリ内のランダムなセクションを上書きしていました。バッファサイズを変更するとすべてが修正されました。 – Minimi
(あなたのためにその答えが正しいとマークしてください) –
@ Minimi、固定数の代わりにsizeof(byteBuffer)を使う傾向があります。 – zneak