У меня есть действительно ДЕЙСТВИТЕЛЬНО странные проблемы с NSString. Когда я читаю входной поток и преобразую данные в строку, я не могу установить что-либо равное этой строке. Вот код:Objc EXC_BAD_ACCESS при установке NSString равным другому
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