如何以增量顺序在Array中追加String

时间:2017-05-25 11:44:30

标签: ios objective-c nsmutablearray

我有一些api调用返回一些值并将其存储到Array中,而接收时我可能会从服务器获取重复值,我认为当它已经在Array中并且插入新值时不会追加,

这里是我的示例代码:

-(void)getIdValue:(NSString*)getIdVal {

getTagIdList = [[NSMutableArray alloc]init];

BOOL isTheObjectThere = [getTagIdList containsObject: getIdVal];

NSLog(isTheObjectThere ? @"Yes" : @"No");

if (isTheObjectThere == NO){
    [getTagIdList addObject:getIdVal];
    NSLog(@"getTagIdList -->%@",getTagIdList);

} if (isTheObjectThere == YES){
    return;
}

}

我希望所有新数据都存储在getTagIdList中,但我只收到一条记录存储

3 个答案:

答案 0 :(得分:2)

您正在错误的方法中初始化数组。您不应该在尝试存储数据的位置启动数组。(这将删除以前调用中存储的所有旧数据)

答案 1 :(得分:0)

NSInteger count=[ArrayData count];

for (int i=0; i<count; i++) {
NSString *StringValue= ArrayData[i];

 BOOL contains = [getTagIdList containsObject: StringValue];
    if (contains==YES) {
        NSLog(@"fail");
    }
    else{
   [getTagIdList addObject: StringValue];
 }
  }

这里“ArrayData”是一个json响应。 getTagIdList正在保存字符串值。尝试一下,我认为这个是可行的。

答案 2 :(得分:0)

从jegadeesh回答我更新了你的代码

getTagIdList = [[NSMutableArray alloc]init];

-(void)getIdValue:(NSString*)getIdVal {


BOOL isTheObjectThere = [getTagIdList containsObject: getIdVal];

NSLog(isTheObjectThere ? @"Yes" : @"No");

if (isTheObjectThere == NO){
    [getTagIdList addObject:getIdVal];
    NSLog(@"getTagIdList -->%@",getTagIdList);

} if (isTheObjectThere == YES){
    return;
}

}