现在,我参与了一个需要从服务器下载大量图像的项目。在网上推荐之后,我尝试了ASIHttpRequest。但是,当我将所有必要的类复制到我的项目中时,我在这些类中得到了30+错误。大多数错误都是关于使用保留、释放或自动发布的。因为我使用的是Xcode 4.2.1,所以禁止显式保留、释放和自动发布。但其他一些错误是相当荒谬的。
例如,在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;
}其他一些类也有类似的问题。
我的问题是:
发布于 2011-12-25 04:40:48
"Xcode 4.2.1,显式保留、发布和自动发布是禁止的“,因为您在创建项目时启用了ARC。关闭ARC。
ASIDataCompressor.m方法在这里看起来很好。不知道你怎么搞错的。
由于您刚刚在项目中获得了ASIHTTP,我建议您切换到AFNetworking,因为请阅读以下内容:[请求释放]
发布于 2012-02-05 18:13:09
如前所述,在使用ARC时,您不能使用(不再需要)保留/释放/等。
如果您希望您的整个项目仍然有ARC,您可以禁用它为该文件。
当您将项目迁移到使用ARC时,将-fobjc-编译器标志设置为所有目标-C源文件的默认设置。您可以使用-fno弧形编译器标志来禁用特定类的ARC。
在Xcode中,转到target Build Phases tab >打开Compile Sources group以显示源文件列表>双击要为其设置标志的文件>在弹出面板中输入-fno-objc-,然后单击“已完成”。
https://stackoverflow.com/questions/8628210
复制相似问题