2010-06-02 1 views
0

Я пытаюсь добавить объект NSData в массив NSMutable. код выполняет штраф, но не добавлять объекты в коде array.The выглядит следующим образом:Проблема при добавлении данных в массив в Objective-C

NSData * imageData = UIImageJPEGRepresentation(img, 1.0); 

int i=0; 

    do{ 

     if([[tempArray objectAtIndex:i] isEqual:imageData]) 
     { 
      [tempArray removeObjectAtIndex:i]; 
     } 
     else 
     { 
      [tempArray addObject:imageData]; 
      //NSLog(@"ANURAG %@",[tempArray objectAtIndex:0]); 
     } 
    }while(i<[tempArray count]) ; 

Оператор NSLog показывает объект, добавленный является недействительным, однако значение ImageData не равно нулю.

Я определил tempArray как статический memeber класса, в котором этот код написан.

Это из-за размера объекта данных, поскольку это данные изображения?

+1

Не могли бы вы ограничиться только одним (1)! или ? за предложение? Множественные !!! и s делают ваш вопрос глупым и непрофессиональным. –

+0

Предполагается, что это какой-то бесконечный цикл? Что произойдет, если вы зарегистрируете tempArray вместо [tempArray objectAtIndex: 0]? Все еще нуль, да? – hooleyhoop

+0

Не смотрите на значение i , которое я только что вставил для тестирования. – anurag

ответ

2

Вы инициализируете tempArray до этого раздела кода? Вы не можете добавлять объекты в неинициализированный массив.

tempArray = [[NSMutableArray alloc] init]; 
+0

Большое спасибо. Но теперь проблема заключается в том, что приложение получает сбой при добавлении imageData в массив. Является ли размер объекта данных ограниченным? Исключение составляет Завершение приложения из-за неперехваченного исключения «NSRangeException», причина: «*** - [NSCFArray objectAtIndex:]: index (0) за пределами границ (0) ' – anurag

+1

Потому что вы выполняете' [[tempArray objectAtIndex: i ] isEqual: imageData] ', когда массив пуст. – JeremyP

+0

@JeremyP Да, Джереми и были правы. Спасибо – anurag

Смежные вопросы