2011-12-25 4 views
2

Теперь я участвую в проекте, которому необходимо загрузить огромное количество изображений с сервера. Следуя рекомендации онлайн, я попробовал ASIHttpRequest. Но когда я копировал все необходимые классы в свой проект, у меня было 30+ ошибок в этих классах. Большинство ошибок связаны с сохранением, выпуском или авторекламой. Поскольку я использую Xcode 4.2.1, явное сохранение, освобождение и автоматическое оповещение запрещены. Но некоторые другие ошибки довольно нелепы.ошибка в ASIHttpRequest

, например, в классе ASIDataCompressor.m, следующий метод должен возвращать NSData

- (NSData *)compressBytes:(Bytef *)bytes length:(NSUInteger)length error:(NSError **)err shouldFinish:(BOOL)shouldFinish 

, но я вижу одну часть метода не возвращают

if (status == Z_STREAM_END) { 
     break; 
    } else if (status != Z_OK) { 
     if (err) { 
      *err = [[self class] deflateErrorWithCode:status]; 
     } 
     return NO; 
    } 

Некоторые другие классы также имеют аналогичные проблемы.

Мои вопросы:

  1. ли я загрузить неправильный пакет?

  2. Как разрешить компилятору игнорировать эти явные удержание, освобождение и автоопределение?

+2

Вы не загрузили неправильный пакет, это просто, что ASIHTTPRequest не был обновлен, чтобы отразить изменения в XCode 4.2. Если вы хотите использовать ASI, вам придется немного настроить настройки (отключив ARC и т. Д.). –

+1

Проверьте AFNetworking вместо этого, я слышу, что он более точен, чем ASI. –

ответ

2

«Xcode 4.2.1, явное сохранение, освобождение и автоопределение запрещено», потому что вы создали ARC при создании своего проекта. Отключить ARC.

ASIDataCompressor.m способ выглядит хорошо здесь. Не знаю, как вы ошиблись.

Поскольку вы просто подобрали ASIHTTP в проекте я бы рекомендовал переход на AFNetworking, потому что прочитать: [request release]

0

Как было указано выше, при использовании ARC, вы не можете использовать (и больше не нужно) сохранить/релиз/и т.д. ,

Если вы хотите, чтобы в вашем общем проекте все еще был ARC, вы можете отключить его для этого одного файла.

Когда вы переносите проект на использование ARC, флаг компилятора -fobjc-arc устанавливается как значение по умолчанию для всех исходных файлов Objective-C. Вы можете отключить ARC для определенного класса, используя флаг компилятора -fno-objc-arc для этого класса.

В Xcode, перейдите к target Build Phases tab> открыть Compile Sources group, чтобы открыть список файлов исходного> дважды щелкните файл, для которого вы хотите установить флаг> введите -fno-ObjC-дуговую в всплывающей панели , затем нажмите «Готово».

Смежные вопросы