每次调用方法时,我都可以将同名的UIImage添加到NSMutableArray中吗?

时间:2012-11-14 11:05:11

标签: ios uiimage nsmutablearray afnetworking nsurlrequest

我正在使用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。我提前谢谢!

2 个答案:

答案 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个对象。您应该创建一次,而不是每次调用块。至少,尝试在块之外分配它。