iOS8 在重定向到 ABPersonViewController 时崩溃 [Not A Type retain] : message sent to deallocated instance

标签 ios objective-c ios8 addressbook abpersonviewcontroller

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; 中崩溃作为 [Not A Type retain]: 发送到释放实例的消息

最佳答案

尝试不从 Controller 获取 addressBook,而是显式地创建它:

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &err);
ABRecordRef person = ABAddressBookGetPersonWithRecordID(addressBook, [recordID intValue]);

关于iOS8 在重定向到 ABPersonViewController 时崩溃 [Not A Type retain] : message sent to deallocated instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26053390/

相关文章:

ios - 如果在 Swift 中为日期选择器设置了间隔,则从日期选择器获取当前时间

iphone - 导入错误 <cocoa/cocoa.h>

objective-c - 使用NSTimer,调用两个同名不同参数的函数,都使用scheduledTimerWithTimeInterval

iphone - Objective-C : UIButton image does not changes

iOS 7/8 : How do I set the Navigation Bar to be pure white (#FFFFFF) and still maintain translucency?

iOS8 Today Widget - 更改标题并将内容添加到默认值

ios - 叠加 SKScene 未显示

ios - 使用 Realm 按多个属性排序

android - 渐进式 Web 应用程序 - 迄今为止的所有可用权限

php - iOS 8 PHP 文件上传错误(服务器文件大小 = 0)