分段故障,仅发布配置

时间:2013-03-27 23:30:56

标签: iphone objective-c segmentation-fault

在构建发行版配置时,我遇到了分段错误,但在调试配置中却没有。

此代码是在运行时加载的包。崩溃本身发生在我的任何执行之前(暗示编译器生成格式错误的二进制文件,几乎可以肯定是因为我的代码中存在问题)。崩溃发生在这个函数中:paranoid_check_one_class

下面的代码没有任何问题,但是如果我取消注释掉注释掉的两行,那么我就会崩溃。 (我可以发表评论firstNamelastNamecompany以使其发挥作用,它只是不喜欢所有三种情况。

-(NSArray *)specifiersForContacts {
    NSMutableArray *contactSpecs = [NSMutableArray array];
    ABAddressBookRef book = ABAddressBookCreateWithOptions(NULL, NULL);
    for (NSNumber *contactID in [self contacts]) {
        ABRecordRef contact = ABAddressBookGetPersonWithRecordID(book,[contactID intValue]);
        NSString *firstName = (NSString *)ABRecordCopyValue(contact, kABPersonFirstNameProperty);
        NSString *lastName = (NSString *)ABRecordCopyValue(contact, kABPersonLastNameProperty);
      //NSString *company = (NSString *)ABRecordCopyValue(contact, kABPersonOrganizationProperty);
        NSString *fullName = [NSString stringWithFormat:@"%@ %@", firstName ?: @"", company ?: @""];
        PSSpecifier *contactSpec = [PSSpecifier preferenceSpecifierNamed:fullName
                                                              target:self
                                                                 set:NULL
                                                                 get:NULL
                                                              detail:Nil
                                                                cell:13
                                                                edit:Nil];
        [contactSpec setValues:@[contactID]];
        [contactSpec setProperty:[NSNumber numberWithInt:1] forKey:@"alignment"];
        [firstName release];
        [lastName release];
      //[company release];
        [contactSpecs addObject:contactSpec];
    }
    return [[contactSpecs copy] autorelease];
}

0 个答案:

没有答案