ошибка в ASIHttpRequest - PullRequest
       33

ошибка в ASIHttpRequest

2 голосов
/ 25 декабря 2011

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

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

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

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

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

У некоторых других классов также есть похожие проблемы.

Мои вопросы:

  1. Я скачал неправильный пакет?

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

Ответы [ 2 ]

2 голосов
/ 25 декабря 2011

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

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

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

0 голосов
/ 05 февраля 2012

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

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

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

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

...