Objc EXC_BAD_ACCESS当设置一个NSString等于另一个

我有一些非常奇怪的NSString问题。 当我从inputstream中读取数据并将其转换为string时,我无法设置任何与该string相同的内容。 代码如下:

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 } } 

我需要将string复制到另一个string,但我不能。 有谁知道这是为什么发生?

你的字节缓冲区是一个字节大,但你正在读取4096字节。 这很可能会引发一连串事件,最终导致事故的发生。