我正在使用AFNetworking API,我正在使用AFImageRequestOperation函数从服务器API调用图像URL以将其转换为UIImage。我想做的是;每次我称之为这种方法:
NSURLRequest *requestImage = [NSURLRequest requestWithURL:theImageURL];
// theImageURL is the Image URL that is collected in a previous method from the server.
AFImageRequestOperation *imageOperation = [AFImageRequestOperation imageRequestOperationWithRequest:requestImage imageProcessingBlock:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image)
{
objImageArray = [[NSMutableArray alloc] init];
if (requestImage != nil) {
[objImageArray addObjectsFromArray:image];
}
} failure:nil];
[imageOperation start];
所以我调用了URL并成功将图像URL分配给 UIImage 。然后我分配了一个 NSMutableArray 并将图像添加到它。我遇到的问题是,每次再次调用该方法时,MutableArray都会用新的Image替换旧的Image。我提前谢谢!
答案 0 :(得分:1)
您应该能够在.h文件中设置NSMutableArray。
@property(nonatomic, strong) NSMutableArray * objImageArray;
然后删除在.m文件中创建数组的代码。
objImageArray = [[NSMutableArray alloc] init];
然后您可以使用相同的添加对象,但您需要确保将其设置为数组。
[self.objImageArray addObjectsFromArray:image];
编辑:数组不关心它包含的对象的名称,因此它们都可以具有相同的名称。当你从数组索引获取图像后,你正在寻找图像,而不是名称。
希望这会有所帮助。
答案 1 :(得分:0)
每次调用此块时,都会重新创建objImageArray
。因此它变为空,旧UIImage
自动释放池释放旧版UIImage
,然后添加新的UIImage
=>任何时候不超过1个对象。您应该创建一次,而不是每次调用块。至少,尝试在块之外分配它。