0

因此,我一直在努力让我的应用程序为 iOS 4 和 iPhone 4 做好准备。安装了最新的 Xcode 和 SDK,并一直在调整图形等。除了在 iPad 模拟器上运行应用程序时遇到问题,一切都运行良好. 我没有要测试的实际 iPad。

我的应用程序使用 ABUnknownPersonViewController,当我点击“创建新联系人”时它会崩溃,但如果我点击“添加到现有联系人”,它可以正常工作。很奇怪!!

当应用程序崩溃时,我在控制台中得到以下信息:

2010-10-21 13:57:25.873 Copy2contact[58432:207] *** Assertion failure in -[ABPropertyGroup propertyModelControllerAtIndex:], /SourceCache/AddressBookUI_Sim/AddressBookUI-643.49/ABPropertyGroup.m:228
2010-10-21 13:57:25.875 Copy2contact[58432:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: ''
2010-10-21 13:57:25.877 Copy2contact[58432:207] Stack: (
...
...
)
terminate called after throwing an instance of 'NSException'

这不会发生在 iPhone 模拟器或 iPhone 设备上,只是 iPad sim。

  • 目标设备系列:iPhone
  • 基础 SDK:iOS 设备 3.2
  • Xcode 3.2.4

以下是如何构建一个示例程序进行测试:

  1. 在 Xcode 中创建一个新的基于导航的 iPhone 项目

  2. 将 AddressBook 和 AddressBookUI 框架添加到项目中

  3. 将以下行添加到 RootViewController.m 的顶部:

    #import <AddressBookUI/ABUnknownPersonViewController.h>

  4. viewDidLoad在 RootViewController.m 中添加以下内容:

    [super viewDidLoad];

    ABRecordRef personRef = ABPersonCreate();
    ABUnknownPersonViewController* abNew = [[ABUnknownPersonViewController alloc] init];

    CFErrorRef err = nil; // Should be released if set? ABRecordSetValue(personRef, kABPersonFirstNameProperty, [NSString stringWithString:@"First"], &err) && ABRecordSetValue(personRef, kABPersonLastNameProperty, [NSString stringWithString:@"Last"], &err);

    abNew.displayedPerson = personRef;
    abNew.allowsActions = NO;
    abNew.allowsAddingToAddressBook = YES;
    [self.navigationController pushViewController:abNew animated:YES];

    [abNew release];
    CFRelease(personRef);

4

1 回答 1

0

我能够在 iPad 上进行测试,并证实这只发生在模拟器中。我打开了错误 8596499

于 2010-10-26T21:14:41.627 回答