【问题标题】:Can I add a UIImage, with the same name, to a NSMutableArray every time method is called?每次调用方法时,我可以将同名的 UIImage 添加到 NSMutableArray 吗?
【发布时间】:2012-11-14 11:05:11
【问题描述】:

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

【问题讨论】:

    标签: ios uiimage nsmutablearray afnetworking nsurlrequest


    【解决方案1】:

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

    @property(nonatomic, strong) NSMutableArray * objImageArray;
    

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

    objImageArray = [[NSMutableArray alloc] init];
    

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

    [self.objImageArray addObjectsFromArray:image];
    

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

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • Argh,完全应该看到这个......感谢您指出我的错误 - 我进行了更改,现在它添加了 UIImage 而不是替换它。我应该能够让它从这里开始工作。有时需要外人的眼睛才能发现我做错了什么!感谢您的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 1970-01-01
      • 2010-11-22
      • 2012-10-01
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多