打印对象 - iPhone应用程序

时间:2011-07-14 17:21:53

标签: iphone ios ipad nsstring nsmutablearray

我正在尝试打印出一个名为Contact的对象(我写的NSObject的扩展名)。

当我的应用首次启动时,我有以下代码:

NSMutableArray *arr = [UserData getGroupNames];
    NSLog(@"group names are %@",arr);
    for(int i = 0; i < [arr count]; i++) {
        NSString *name = [arr objectAtIndex:i];
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        NSData *data = [defaults objectForKey:name];
        NSArray *a = [NSKeyedUnarchiver unarchiveObjectWithData:data];
        NSLog(@"name = %@",name);
        NSLog(@"array count is %i",[a count]);
        for(int i = 0; i < [a count]; i++) {
            NSLog(@"on index %i",i);
            Contact *c = [a objectAtIndex:i];
            NSLog(@"got contact");
            if(c == nil)
                NSLog(@"it's nil!");    
            NSLog(@"contact first name = %@",[c getFirst]);
            NSLog(@"got contact %@",c);

所以,我把我的数组称为“a”并尝试将其打印出来。嗯,这不起作用。该程序只是坐在那里,没有做任何事情。它没有错误输出或退出,它实际上只是停止做任何事情。

所以我打印计数,结果是1.显然阵列中有一些东西。那么,我从数组中获取第一个Contact,并且我的控制台打印出“get contact”。

然后,我测试看看该联系人是否为零。嗯,不是。

然后,我尝试打印联系人。我的程序停止运行。在控制台中,我只看到“(gdb)”并且没有打印,也没有任何内容继续运行。该计划就在这里。

发生了什么事?我只是打印一个联系人(顺便说一句,它有一个描述方法设置,只打印出一个NSString)。

1 个答案:

答案 0 :(得分:0)

我敢打赌c是一个糟糕的对象。试试NSStringFromClass([c class]),同时尝试单步进入调试器,看看它是如何运行的。