我是iPhone编程新手。如何向NSString
添加NSArray
。我有缩略图。如果我点击我要在NSArray
中存储imagepath的任何一个图像。如果我点击同一图像我也想从NSArray
中删除图像路径。 (比如选择和取消选择)任何人都可以告诉我如何做到这一点,那是什么逻辑?直到现在我一直在做
- (void)click
{
NSLog(@"%@",_fullsizeUrl);
array =[[NSMutableArray alloc]init];
[array addObject:_fullsizeUrl];
NSLog(@"%@",array);
}
在上面的代码_fullsizeUrl
中是imagepath我将其存储在NSMutableArray
中。问题是如果选择任何一个图像意味着Ii获得存储在NSArray
中的图像路径。但是,如果我选择任何其他图像,则存储最新的一个图像正在删除。任何人都可以告诉我如何做到这一点
感谢
答案 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;