我有包含UIImage对象的NSArray。当我向这个数组添加新图像时,我也将相同的图像保存在磁盘上。这对我来说还可以。
当我从NSArray中删除图像时,我也想从磁盘中删除此图像。
因此,如果使用例如索引0,1,2,3,4,我将图像存储在磁盘上是不合适的。
让我说明原因:
例如,我创建了图像0,1,2,3,4(我删除.png只保留索引)。
第二步是删除我的数组中的第三个元素,所以我知道删除元素的索引是2,因为它在数组中是第三个。
我在磁盘上删除了具有适当索引名称的图像。
那么如何在磁盘和阵列中绑定我的图像。
我认为可能是另一个解决方案可以添加计数器,每次都会增加图像的数量以获取唯一的名称ID,并且还使用文件名而不是数组中的UIImage索引。
答案 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。所以你也有。
我希望有所帮助!