0

我是 iPhone 编程的新手。如何将一个添加NSStringNSArray. 我有缩略图。如果我单击任何一张图像,我想将图像路径存储在NSArray. 如果我单击要从中删除图像路径的同一图像,则相同NSArray。(比如选择和取消选择)谁能告诉我我该怎么做,这样做的逻辑是什么?到现在我一直在做

- (void)click
{

   NSLog(@"%@",_fullsizeUrl);
   array =[[NSMutableArray alloc]init];
   [array addObject:_fullsizeUrl];         
   NSLog(@"%@",array);

}

在上面的代码_fullsizeUrl中是图像路径,我将它存储在一个NSMutableArray. 问题是如果选择任何一个图像意味着 Ii 获得存储在NSArray. 但是,如果我选择任何其他图像,它会存储最新的图像,之前的图像将被删除。任何人都可以告诉我如何做到这一点谢谢

4

3 回答 3

2

您的“前一个正在删除”,因为您NSMutableArray每次点击缩略图时都会重新分配您的。在 click 方法之外分配数组。

-(void)click
{
    if ([yourAry containsObject:yourObject])
    {
        [yourAry removeObject:yourObject];
    }
    else{
        [yourAry addObject:yourObject];
    }
}
于 2013-02-14T11:24:12.703 回答
1
array =[[NSMutableArray alloc]init];
[array addObject:_fullsizeUrl];         

每次click调用时,您都在创建一个新数组。在方法结束时,数组没有强引用(假设为 ARC,否则您正在泄漏内存)并被释放。

在您的班级上创建您NSMutableArray的财产,然后click应如下所示:

- (void)click
{
    if ([self.myArray containsObject:self.fullSizeUrl]) {
        [self.myArray removeObject:self.fullSizeUrl];
    } else {
        [self.myArray addObject:self.fullSizeUrl];
    }
}

如果您只在数组中存储唯一字符串,则可以考虑使用NSMutableSet

于 2013-02-14T11:36:55.413 回答
-1

您可以使用此方法并使用一个 int 变量 i 并每次增加 +1。

- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;
于 2013-02-14T11:27:23.217 回答