2015-07-07 8 views
1

Я следую учебному курсу, в котором я обращаюсь к адресной книге, позволяя пользователю выбирать контакты и хранить их в основных данных. После того, как они будут сохранены в основных данных, диспетчер модального просмотра с контактами адресной книги будет удален.Импорт контактов из адресной книги

Однако у меня есть странная проблема, когда после ее увольнения, когда вы смотрите на контакты, в tableview отображается новый контакт, но имя не отображается. Дело не в том, что представление таблицы вообще не обновляется. Он показывает новый контакт. Он просто не показывает имя. Если вы перейдете к редактированию контакта (в подробном представлении), там будет имя, которое будет храниться в базе данных. Но если вы вернетесь в tableview, имя все равно отсутствует.

Только при сохранении отредактированной версии - даже если вы оставите все одинаково - имя отображается в виде таблицы.

Это не проблема делегата, поскольку в представлении таблицы отображается новая запись, но она просто не отображает имя и фамилию.

Happy to show code if someone хочет, но не уверен, какой код наиболее уместен.

Спасибо за любые предложения.

Edit:

Проблема, похоже, в методе cellforrowatindexpath. Лучшее имя печатается как null, но первое и последнее имя одобрены. Однако наилучшая конкатенация имен работает нормально. Не знаю, почему он здесь не работает.

Contacts *contact = [self.fetchedResultsController objectAtIndexPath:indexPath]; 
    //get best name 
    NSString *bestName = [contact.title stringByAppendingFormat:@" %@", contact.first]; 
    bestName = [bestName stringByAppendingFormat:@" %@", contact.last]; 
    NSLog(@"The best name is: %@", bestName);  // prints Null 
     NSLog(@"The first name is: %@",contact.first);//prints Bob 
     NSLog(@"The last name is: %@",contact.last);//prints Jones 
+0

Не могли бы вы показать нам минимальный пример, который повторяет проблему, которая у вас есть? – Gordonium

+1

Проверка '- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath' там вы должны иметь объект с человеком в адресной книге и видеть, почему не печатает на ячейке. – jberlana

+0

См. Править выше. Кажется, что-то не так с моим сочетанием имени и фамилии. Они выходят правильно, но лучшее имя равно null. –

ответ

0

В объекте «Контакты» свяжитесь с нами, чтобы contact.title не был равен нулю.

+0

Проблема заключается в том, что NSString не изменяет. По-видимому, есть способ добавить к нему, но над кодом не так. Я все еще ищу экономичный способ создания строки из нескольких переменных, любой из которых может быть равен нулю. –

+0

[firstString stringByAppendingFormat: @ "% @", secondString] вернет совершенно новую строку с добавленным форматом. Невозможность воспроизведения оригинальной струны. –

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