Вы сравниваете первый объект addList и первый объект appDelegate.list, если они не равны, вы вставляете объект addList. Логика неверна, вы должны сравнивать один объект addList с каждым объектом appDelegate.list.

уверен, как идти об этом. у меня естьNSMutableArray (addList), который содержит все элементы, которые будут добавлены в мой источник данных NSMutableArray.

Теперь я хочу проверить, существует ли объект, добавляемый из массива addList, в массиве источника данных. Если он не существует, добавьте элемент, если существует, игнорируйте.

Оба объекта имеют строковую переменную с именем iName, которую я хочу сравнить.

Вот мой фрагмент кода

-(void)doneClicked{
    for (Item *item in addList){
        /*
        Here i want to loop through the datasource array 
        */
        for(Item *existingItem in appDelegate.list){
            if([existingItem.iName isEqualToString:item.iName]){
                // Do not add
            }
            else{
                [appDelegate insertItem:item];
            } 
        }
}

Но я нахожу этот предмет для добавления, даже если он существует.

Что я делаю неправильно ?