複数のセクションを持つ UITableView があります。テーブルビューのセクションには 2 つの行があり、そのうちの 1 つは編集可能 (挿入ボタン) で、もう 1 つはアドレス帳からの名前を表示します。セルの挿入ボタンをクリックすると、peoplePickerView が読み込まれ、連絡先が選択されます。
アドレス帳から連絡先を取得します
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
NSString *firstName = (__bridge NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
NSString *middleName = (__bridge NSString *)ABRecordCopyValue(person, kABPersonMiddleNameProperty);
NSString *lastName = (__bridge NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
self.contactName = [NSString stringWithFormat:@"%@/%@/%@", firstName ?: @"", middleName ?: @"", lastName ?: @""];
[self.myTableView reloadData];
[self dismissViewControllerAnimated:YES completion:nil];
return NO;
}
tableview の cellForRowAtIndexPath について
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.section == 0){
if(indexPath.row == 0){
cell.textLabel.text = self.contactName;
NSLog(@"Contact Name %@", self.contactName);
}
else{
cell.textLabel.text = @"";
}
}
}
firstname プロパティのみを文字列に設定すると、文字列は正しい値になりますが、文字列 (最初の + ミドルネーム + ラストネーム) を連結してテーブルビューをリロードしようとすると、null 値が返されます。私は何を間違っていますか、どうすれば修正できますか?