我有一些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中,但我只收到一条记录存储
答案 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;
}
}