Я пытаюсь распечатать объект с именем Contact (расширение NSObject, которое я написал).
Когда мое приложение запускается впервые, у меня есть следующий код:
NSMutableArray *arr = [UserData getGroupNames];
NSLog(@"group names are %@",arr);
for(int i = 0; i < [arr count]; i++) {
NSString *name = [arr objectAtIndex:i];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [defaults objectForKey:name];
NSArray *a = [NSKeyedUnarchiver unarchiveObjectWithData:data];
NSLog(@"name = %@",name);
NSLog(@"array count is %i",[a count]);
for(int i = 0; i < [a count]; i++) {
NSLog(@"on index %i",i);
Contact *c = [a objectAtIndex:i];
NSLog(@"got contact");
if(c == nil)
NSLog(@"it's nil!");
NSLog(@"contact first name = %@",[c getFirst]);
NSLog(@"got contact %@",c);
Итак, я получаю свой массив с именем "a" и пытаюсь распечатать его. Ну, это не работает. Программа просто сидит там и ничего не делает. Он не выдает ошибку и не завершает работу, он просто перестает что-либо делать.
Итак, я печатаю счетчик, и получается, что он равен 1. Итак, ясно, что в массиве что-то есть. Итак, я беру первый Контакт из массива, и мои отпечатки на консоли "получили контакт" в порядке.
Затем я проверяю, является ли этот контакт нулевым. Ну, это не так.
Затем я пытаюсь распечатать контакт. И моя программа перестает работать. В консоли я просто вижу "(gdb)" и ничего не печатает, и ничего не продолжает работать. Программа просто сидит.
Что происходит? Я просто печатаю контакт (у которого, кстати, настроен метод описания, который только печатает строку NSString).