2017-05-25 37 views
0

我有一些API調用,它返回一些值,並將其存儲陣列,同時在接收我可能會重複,從我估計不是服務器值追加時,它已經在陣列和插入新值,如何追加字符串在數組中的增量爲了

這裏我的樣本代碼:

-(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

你需要檢查怎樣用這種方法:getIdValue獲取調用多少次,它被稱爲。 – coder

+0

在這段代碼中,數組總是空的,所以'isTheObjectThere'將始終爲假,數組總是以1的值結束。如果你想讓所有的值都在同一個數組中,那麼你需要使用一個不是爲每個'getIdVal'創建的數組。 – beyerss

回答

2

你初始化的方法中的陣列這是錯誤的。你不應該開始在您嘗試存儲數據的陣列。(這將刪除存儲在以前的調用所有的舊數據)

+0

我想你在這裏得到了你的答案。 – coder

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正在保存字符串值。試試吧,我認爲這是工作。

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; 
} 

}