如何在iphone中逐个添加imagepath中的imagepath

时间:2013-02-14 11:19:00

标签: objective-c nsmutablearray nsarray

我是iPhone编程新手。如何向NSString添加NSArray。我有缩略图。如果我点击我要在NSArray中存储imagepath的任何一个图像。如果我点击同一图像我也想从NSArray中删除图像路径。 (比如选择和取消选择)任何人都可以告诉我如何做到这一点,那是什么逻辑?直到现在我一直在做

- (void)click
{

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

}

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

3 个答案:

答案 0 :(得分:2)

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

-(void)click
{
    if ([yourAry containsObject:yourObject])
    {
        [yourAry removeObject:yourObject];
    }
    else{
        [yourAry addObject:yourObject];
    }
}

答案 1 :(得分: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代替。

答案 2 :(得分:-1)

你可以使用这个方法并使用一个int变量i并且增加时间+1。

- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;