Мой отредактированный вопрос: - Я скопировал массив. Но проблема в том, что нижняя строка выполняет [mainRestaurantArray removeObjectAtIndex: j]; index of the mainRestaurantArray уменьшается. И это не позволит удалить правильное индексированное значениеУдаление дублирующегося значения из Nsmutablearray + iphone
Как показано на рисунке, ошибка индекса не указана. Becoz общий индекс arrayRestaurantList -31 и общий индекс mainRestaurantArray-25 (после удаления дублирующегося значения).
if([arrayRestaurantList count]==[mainRestaurantArray count]){
BtnMore.hidden=YES;
TablView.frame=CGRectMake(0,57, 320, 360);
} else{
[mainRestaurantArray removeAllObjects];
mainRestaurantArray=[[NSMutableArray arrayWithArray:arrayRestaurantList] retain];
if ([arrayRestaurantList count]>10) {
for (int i=0;i<[arrayRestaurantList count]-10;i++) {
NSString *Old_data;
Old_data=[[arrayRestaurantList objectAtIndex:i] objectForKey:@"Name"];
NSLog(@"olddata==>%@",Old_data);
for (int j=[arrayRestaurantList count]-10;j<[arrayRestaurantList count];j++) {
NSString *New_data;
New_data=[[arrayRestaurantList objectAtIndex:j] objectForKey:@"Name"];
NSLog(@"olddata==>%@ newdata==>%@",Old_data,New_data);
if ([New_data isEqualToString:Old_data]) {
//BtnMore.hidden=YES;
[mainRestaurantArray removeObjectAtIndex:j];
}
}
}
}
}
У меня есть NSMutableArray
(mainRestaurantArray
), который заполняется из данных, которые наступающие в качестве ответа от веба-сервиса.
Данные mainRestaurantArray
, как: -
{
Address = "Ellisbridge Opposite Parimal Garden Near Doctor House Ahmedabad Gujarat 380006 India (Collegian Restaurant)";
Image = "";
Latitude = "23.020119999999999";
Longitude = "72.556343999999996";
Name = "Collegian Restaurant";
"Phone_Number" = "079 26401020";
url = "";
}
{
Address = "Ground Floor Aakash Ganga Ellisbridge B/H Gujrat College : Next To Art Palace Ellisbridge Ahmedabad Gujarat 380006 India (TC's Bread Shop)";
Image = "";
Latitude = "23.023137999999999";
Longitude = "72.560096000000001";
Name = "TC's Bread Shop";
"Phone_Number" = "079 26568158";
url = "";
}
{
Address = "Center Point Panchwati Crossing C G Road Ahmedabad Gujarat 380009 India (Kings Food Factory)";
Image = "";
Latitude = "23.022670000000002";
Longitude = "72.555651999999995";
Name = "Kings Food Factory";
"Phone_Number" = "079 4002 1122";
url = "http://www.kingsfoodfactory.com";
}
в словаре т.е. form.Now некоторое время это случается, что данные получают repeated.So я хочу, чтобы удалить его. Я написал код, как показано ниже:
if ([mainRestaurantArray count]>10) {
for (int i=0;i<[mainRestaurantArray count]-10;i++) {
NSString *Old_data;
Old_data=[[mainRestaurantArray objectAtIndex:i] objectForKey:@"Name"];
NSLog(@"olddata==>%@",Old_data);
for (int j=[mainRestaurantArray count]-10;j<[mainRestaurantArray count];j++) {
NSString *New_data;
New_data=[[mainRestaurantArray objectAtIndex:j] objectForKey:@"Name"];
NSLog(@"olddata==>%@ newdata==>%@",Old_data,New_data);
if ([New_data isEqualToString:Old_data]) {
BtnMore.hidden=YES;
TablView.frame=CGRectMake(0,57, 320, 360);
[mainRestaurantArray removeObjectAtIndex:j];
}
}
}
}
Но проблема в этом коде, когда я удалить значение ссылка теряться .. Так применение получить crashed.Can кто-нибудь помочь мне, как получить удалить данные
заранее спасибо ...
поскольку вы используете тот же массив для удаления и петли, эта проблема произошла, просто сделайте копию массива, а затем после завершения копируйте отредактированный массив снова в исходный. –
Опубликуйте журнал сбоев – Saphrosit
@AalokParikh спасибо за ответ. Я скопирую массив. Но у меня была такая же проблема с сбоем. Пожалуйста, проверьте мой вопрос на вопрос –