我正在尝试测试(而不是运行)我的应用,但是我收到以下错误:
线程1:EXC_BREAKPOINT(代码= EXC_I386_BPT,子代码= 0x0)
它指向我的viewcontroller的initWithNibName中的一行。
@synthesize messageTextView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
/*
some code
*/
//This is the line where the exception points:
messageTextView = [[UITextView alloc]initWithFrame:CGRectMake(0, 306, 320, 110)];
/*
some other code
*/
}
return self;
}
我的viewcontroller的.h文件如下所示:
@interface SMMenuViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate ,UITextViewDelegate>
{
/*
some code
*/
}
@property (retain, nonatomic) IBOutlet UITextView *messageTextView;
我还在viewDidUnload中“nil”messageTextView。
我不知道到底出了什么问题,因为它在我运行时效果很好,它只在测试期间失败。
非常感谢任何帮助!
此致
佐利
答案 0 :(得分:1)
首先,您不需要分配/初始化引用为IBOutlet
的视图(它由xib / storyboard自动实例化)。
现在,你应该做的是在viewDidLoad
方法中移动视图自定义,因为init
上没有加载视图层次结构(所以你的所有视图实际上都是nil
时间)。首次尝试访问层次结构中的某个视图时会加载它。
所以基本上你可以这样做:
- (void)viewDidLoad
{
[self.messageTextView setFrame:CGRectMake(0, 306, 320, 110)];
}
我希望这是有道理的......