2012-08-10 207 views
-1

大家好我有一个问题,显示从主文件xib文件不知道为什么这是发生在一些xib文件,而不是其他人。加载xib崩溃的应用程序

if(segment == @"1"){ 
    Results1 *myView1 = [[Results1 alloc]initWithNibName:@"Results1" bundle:nil]; 
    [self.view addSubview:myView1.view]; 
}else if(segment == @"2"){ 
    Results2 *myView2 = [[Results2 alloc]initWithNibName:@"Results2" bundle:nil]; 
    [self.view addSubview:myView2.view]; 
}else if(segment [email protected]"3"){ 
    Results3 *myView3 = [[Results3 alloc]initWithNibName:@"Results3" bundle:nil]; 
    [self.view addSubview:myView3.view]; 
}else if(segment [email protected]"4"){ 
    Results4 *myView4 = [[Results4 alloc]initWithNibName:@"Results4" bundle:nil]; 
    [self.view addSubview:myView4.view]; 
} 

是我的代码的第一个XIB文件打开,但不休息,我不知道为什么,我已经加入.h文件:

#import "Results1.h" 
#import "Results2.h" 
#import "Results3.h" 
#import "Results4.h" 

应用上这条线调试时结束:

@autoreleasepool { 
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([TestTypingToolAppDelegate class])); 
} 

然后它崩溃,任何人有任何想法?

+0

xib'文件的名称是什么?什么样的对象是_Results_?有'view'连接到每个视图控制器中的'view'属性?很多很多事情都不清楚,以找出坠机的原因。 – holex 2012-08-10 17:42:42

+1

在这种情况下它可能没有帮助,但使用字符串比较的'=='本质上是错误的,除非您对对象的地址感兴趣。切换到'isEqualToString:'。 – 2012-08-10 17:47:24

+0

不知道如何连接视图?但第一个工作,他们都是一样的,所以我认为他们都应该工作,当我走了扔代码,它确实看到它应该加载它的xib只是不加载。 – Tim 2012-08-10 17:54:21

回答

0

添,这里是从Interface Builder中的图片,也许它可以帮助你:

enter image description here

+0

那就是谢谢你 – Tim 2012-08-10 18:09:05

+0

欢迎你!周末愉快,不要太努力。 :) – holex 2012-08-10 18:09:51

0

当应用程序将您带到main.m中的那一行时,您需要查看控制台输出。对我来说,我总是犯一个错误,最常见的错误是1)文件不存在(Results1.xib)或2)我忘了设置视图插座。正如我所提到的,控制台输出中的异常细节会帮助你。

0

请记住,有时加载设备上的观点碰撞,但没有模拟器。在这种情况下,检查以确保当您拨打:

initWithNibName:@"YourNibName"; 

你的笔尖名字符串的外壳是完全一样的笔尖文件。模拟器忽略情况,但设备需要精确匹配(非常令人不快)