Вы выпустили автоматически выпущенный объект.
Удалить строку [releaseData release];
Тебе это не нужно. Это приводит к сбою, поскольку данные передаются вами, а затем снова высвобождаются после завершения отправки данных, что является слишком большим количеством выпусков.
Как правило, вы не вызываете release для объекта, пока вы не выделите его, или документы прямо не сообщат, что возвращаемый объект не высвобождается автоматически. (что редко).
С этим кодом вам не нужно беспокоиться о том, что вы используете автоматически выпущенный объект, поскольку память идет, независимо от того, что вы делаете, память будет оставаться до тех пор, пока базовая структура не отправит данные по проводам.
Я не знаю, есть ли лучший способ размещения данных - у вас код выглядит нормально, за исключением того, что данные json, вероятно, дублируются как в строке, так и в объекте данных, но в объеме отправляемых данных. может быть маленьким Если это не так, вы должны выпустить строку jsonData сразу после создания данных. (Это будет означать, что строка jsonData должна быть из вызова alloc / init вместе с данными). Или не создавайте jsonData как строку, просто сделайте его неизменяемым с самого начала, но это может быть неудобно.
- Том