【问题标题】:Assertion and exception on iPad simulator but not iPhone sim or device!iPad 模拟器上的断言和异常,但不是 iPhone sim 或设备!
【发布时间】:2010-10-21 18:23:59
【问题描述】:

所以我一直在努力让我的应用程序为 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. 将以下内容添加到 RootViewController.m 中的viewDidLoad

    [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);

【问题讨论】:

  • 更新:我已经经历了 Base SDK 和 iOS 目标版本等的每一次迭代,最重要的是,如果目标设备系列是,我无法让它在 iPad 模拟器上工作设置为 iPhone。如果我创建一个 iPad 应用程序,它可以在没有断言的情况下工作,但不幸的是,这不是我的项目的选项。

标签: iphone exception ipad addressbook assertion


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    相关资源
    最近更新 更多