iOS将图像绑定在数组和磁盘上

时间:2014-09-02 19:16:34

标签: ios nsarray

我有包含UIImage对象的NSArray。当我向这个数组添加新图像时,我也将相同的图像保存在磁盘上。这对我来说还可以。

当我从NSArray中删除图像时,我也想从磁盘中删除此图像。

因此,如果使用例如索引0,1,2,3,4,我将图像存储在磁盘上是不合适的。

让我说明原因:

例如,我创建了图像0,1,2,3,4(我删除.png只保留索引)。

第二步是删除我的数组中的第三个元素,所以我知道删除元素的索引是2,因为它在数组中是第三个。

我在磁盘上删除了具有适当索引名称的图像。

那么如何在磁盘和阵列中绑定我的图像。

我认为可能是另一个解决方案可以添加计数器,每次都会增加图像的数量以获取唯一的名称ID,并且还使用文件名而不是数组中的UIImage索引。

1 个答案:

答案 0 :(得分:0)

我会使用额外的NSDictionary。您可以使用NSString作为键,其中包含每个图像的唯一标识符(您也将其用作文件名),并将UIImage作为值。然后,您的数组可以存储带有ID的NSStrings。

例如:

NSMutableArray *array = @[@"a", @"b", @"c"];
NSMutableDictionary *dictionary = @{@"a" : firstImage,
                                    @"b" : secondImage,
                                    @"c" : thirdImage,};

所以,要获得secondImage你会做

UIImage *secondImage = dictionary[array[1]];

如果你删除那个图像(和字典,你需要保持它们同步),你的数组将如下所示[@" a",@" c"]。执行上述行此时将返回thirdImage

您的文件名可以是a.png,b.png和c.png。所以你也有。

我希望有所帮助!