在我的程序中,我使用nslayoutconstraints为视图设置约束。该视图由tableview,collectionview和主视图组成。当视图加载时,应用程序崩溃并出现以下错误
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'
***第一次抛出调用堆栈: (0x27126d67 0x34c61c77 0x27047237 0x2704701b 0xe1333 0xe0bc1 0x1c6ca7 0x1d24e1 0x9b59cb 0x9b59b7 0x9b9411 0x270ecc41 0x270eb361 0x27038981 0x27038793 0x2e3e8051 0x2a62a981 0x1d72b5 0x351fdaaf) libc ++ abi.dylib:以NSException类型的未捕获异常终止
tableview的值为“NIL”
NSDictionary *viewsDictionary = @{@"tableView":_tableView,
@"mainView": _mainView,
@"movieDetail":_movieDetailView
};
此词典用于在tableview中设置高度约束,如下所示
NSArray *constraint_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[tableView(tableHeight)]"
options:0
metrics:metrics
views:viewsDictionary];
[_tableView addConstraints:constraint_V];
为什么tableview的值是nil?这个tablview是来自storyboard的IBOUTLET。当我以编程方式分配内存时,代码运行。但tableview没有加载数据。任何人都可以找到我的原因吗?
提前谢谢
答案 0 :(得分:0)
请确保您没有过早地调用此方法,并且尚未创建表格视图。也许您正在" viewDidLoad"中执行此代码,也许可以尝试viewWillAppear或viewDidLayoutSubviews。
答案 1 :(得分:0)
请确保您正确地合成该属性。
@synthesize yourIBOutletTableView = _tableView;