0

我正在使用 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 都会用新图像替换旧图像。我提前谢谢!

4

2 回答 2

1

您应该能够在 .h 文件中设置 NSMutableArray。

@property(nonatomic, strong) NSMutableArray * objImageArray;

然后删除您在 .m 文件中创建数组的代码。

objImageArray = [[NSMutableArray alloc] init];

然后您可以使用相同的添加对象,但您需要确保将其设置为数组。

[self.objImageArray addObjectsFromArray:image];

编辑:该数组不关心它包含的对象的名称,因此它们都可以具有相同的名称。当您从数组索引而不是名称获取图像后查找图像时。

希望这可以帮助。

于 2012-11-14T11:18:00.450 回答
0

每次调用此块时,您都会重新创建一个objImageArray. 因此它变成空的,旧的UIImage自动释放池释放旧的UIImage,然后您UIImage随时添加一个新的 => 不超过 1 个对象。您应该创建一次,而不是每次调用该块时。至少,尝试在块之外分配它。

于 2012-11-14T11:13:44.160 回答