Ошибка AFNetworking Domain=NSPOSIXErrorDomain Code=12 "Не удалось завершить операцию.Не удается выделить память

StackOverflow https://stackoverflow.com/questions/8875122

Вопрос

Я отправляю много файлов изображений через AFNetworking на сервер Rails.На edge и иногда 3G я получаю эту ошибку:Ошибка Domain=NSPOSIXErrorDomain Code=12 "Не удалось завершить операцию.Не удается выделить память".

Это код, который я использую для отправки файлов: https://gist.github.com/cc5482059ae3023bdf50

Есть ли способ это исправить?

В Интернете некоторые люди предполагают, что обходным решением было бы передавать файлы в потоковом режиме.Мне не удалось найти руководство по потоковой передаче нескольких файлов с помощью AFNetworking.Как я могу это сделать?

Это было полезно?

Решение

Насколько велики изображения?А сколько вы пытаетесь отправить?

Кажется, я не могу найти простой способ реализовать NSInputStream с помощью AFNetworking, но определенно есть одна вещь, которую вы должны попробовать, а именно избегать помещения больших объектов в пул автозапуска.Когда вы создаете большие экземпляры NSData в цикле for, и они собираются в пул автозапуска, вся эта память остается в памяти до тех пор, пока длится цикл.Это один из способов его оптимизации:

родовое слово

Или, если вы используете LLVM3:

родовое слово

Другие советы

Я знаю, что прошло много времени с тех пор, как был задан этот вопрос, но я просто должен выложить свои два цента по этому поводу.

Потратив большую часть недели на попытки разобраться во всем этом, вот где я сейчас нахожусь:

  • Эта проблема возникла у меня на слегка потрепанном старом iPhone 4 под управлением iOS 5.1.1
  • Похоже, не удается воспроизвести это на не разбитом iPhone 4S под управлением той же iOS 5.1.1

Возможно, это связано с неисправностью сети на самом аппаратном обеспечении телефона или с необходимостью ограничить пропускную способность (или просто с ошибкой в NSURLConnection):

http://aws.amazon.com/articles/0006282245644577

https://forums.dropbox.com/topic.php?id=25351

Ошибка POSIX 12 ("Не удается выделить память") при загрузке файлов с iPhone

Я бы перешел на ASIHTTPRequest, но он больше не поддерживается, так что теперь его стоит внедрить.Возможно, мне все же стоит попробовать AFNetworking, но я действительно начинаю думать, что это проблема, которая уже исправлена в iOS (или, возможно, это дрянной iPhone в моем случае).

Но я ни за что на свете не смогу найти этому простого объяснения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top