2
ABPersonViewController *personController = [[ABPersonViewController alloc] init];
personController.personViewDelegate = self;
ABRecordRef person = ABAddressBookGetPersonWithRecordID(personController.addressBook, [recordID intValue]);
personController.displayedPerson = person;
personController.allowsEditing = YES;
personController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back",nil) style:UIBarButtonItemStylePlain target:self action:@selector(returnFromPersonView)] ;
personController.navigationController.navigationBarHidden = NO;

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:personController];
navController.navigationBar.tintColor=[UIColor colorWithRed:27/255.0 green:27/255.0 blue:29/255.0 alpha:1.0];
[self presentViewController:navController animated: YES completion:nil];

在这一行中出现崩溃 personController.displayedPerson = person; as [Not A Type retain]: 消息发送到解除分配的实例

4

1 回答 1

1

尝试不从控制器获取地址簿,而是显式创建它:

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &err);
ABRecordRef person = ABAddressBookGetPersonWithRecordID(addressBook, [recordID intValue]);
于 2014-12-10T20:06:56.303 回答