为什么在我的for循环的第一次迭代后得到SIGABRT?

时间:2010-10-06 02:05:16

标签: iphone objective-c ios4 three20

我对这个问题感到非常愚蠢,但是我一直试图将这个问题解决了大约三个小时并且无处可去。请参阅下面的代码。在第一次迭代之后,我的程序崩溃了,我得到的只是SIGABRT。正如您可能从代码中获得的那样,我只是尝试从其他字符串构建一个字符串。它在第一次迭代时工作正常,但在第二次迭代时,它只是中止。

Film* film = (Film *)managedObject;

    for (NSManagedObject* crewMember in [film CastAndCrew])
    {   
        castAndCrewMember = (CastOrCrewMember*)crewMember;
        if ([[[castAndCrewMember talentType] typeName] isEqualToString:@"Director"])
        {
            fullName = [[NSMutableString alloc] initWithString:[[castAndCrewMember talent] firstName]];
            [fullName appendString:[@" " stringByAppendingString:[[castAndCrewMember talent] lastName]]];
            subtitle = [[NSMutableString alloc] initWithString:[[[[fullName description] stringByAppendingString:@" "] stringByAppendingString:[film runningTime]] stringByAppendingString:@" | "]];
            [subtitle appendString:[[film category] categoryName]];
            [subtitle retain];
            [fullName release];
            fullName = nil;
            break;
        }
    }

    TTTableItem* tableItem = [TTTableSubtitleItem itemWithText:[film title]
                                                      subtitle:subtitle
                                                      imageURL:[film imageURL] 
                                                  defaultImage:[UIImage imageNamed:@"aff2010_l.png"]
                                                           URL:nil 
                                                  accessoryURL:nil];

提前致谢。

1 个答案:

答案 0 :(得分:1)

对不起,伙计们,我想我发现了我的错误。为castAndCrew对象返回的记录实际上不存在。我的错。对不起:)