I adding tableView on viewController. When I open this screen, then I will get the below warning once.
[TableView] Warning once only: UITableView was told to layout its visible cells and other contents without being in the view hierarchy (the table view or one of its superviews has not been added to a window). This may cause bugs by forcing views inside the table view to load and perform layout without accurate information (e.g. table view bounds, trait collection, layout margins, safe area insets, etc), and will also cause unnecessary performance overhead due to extra layout passes. Make a symbolic breakpoint at UITableViewAlertForLayoutOutsideViewHierarchy to catch this in the debugger and see what caused this to occur, so you can avoid this action altogether if possible, or defer it until the table view has been added to a window. Table view: <UITableView: 0x7fe2ba8d5a00; frame = (-47 -80; 394 553); clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x600003447480>; layer = <CALayer: 0x600003aa2be0>; contentOffset: {0, 0}; contentSize: {394, 176}; adjustedContentInset: {0, 0, 0, 0}; dataSource: <Project.MondayToSundayViewController: 0x7fe2b9da05c0>>
When added symbolic breakpoint for UITableViewAlertForLayoutOutsideViewHierarchy then below is shown in the console.
> UIKitCore`UITableViewAlertForLayoutOutsideViewHierarchy:
-> 0x7fff48260c7e <+0>: pushq %rbp
0x7fff48260c7f <+1>: movq %rsp, %rbp
0x7fff48260c82 <+4>: pushq %r14
0x7fff48260c84 <+6>: pushq %rbx
0x7fff48260c85 <+7>: subq $0x30, %rsp
0x7fff48260c89 <+11>: callq *0x3e51a6a1(%rip) ; (void *)0x00007fff51411350: objc_retain
0x7fff48260c8f <+17>: movq %rax, %rbx
0x7fff48260c92 <+20>: leaq 0x416a8dbf(%rip), %rdi ; _UIInternalPreference_UITableViewEnableAlertForLayoutOutsideViewHierarchy
0x7fff48260c99 <+27>: leaq 0x3e5a2140(%rip), %rsi ; @"UITableViewEnableAlertForLayoutOutsideViewHierarchy"
0x7fff48260ca0 <+34>: callq 0x7fff482a7529 ; _UIInternalPreferenceUsesDefault
0x7fff48260ca5 <+39>: testb %al, %al
0x7fff48260ca7 <+41>: jne 0x7fff48260cb3 ; <+53>
0x7fff48260ca9 <+43>: movb 0x416a8dad(%rip), %al ; _UIInternalPreference_UITableViewEnableAlertForLayoutOutsideViewHierarchy + 4
0x7fff48260caf <+49>: andb $0x1, %al
0x7fff48260cb1 <+51>: je 0x7fff48260d2d ; <+175>
0x7fff48260cb3 <+53>: leaq 0x416c3ffe(%rip), %rax ; _UIApplicationLinkedOnVersion
0x7fff48260cba <+60>: movl (%rax), %eax
0x7fff48260cbc <+62>: testl %eax, %eax
0x7fff48260cbe <+64>: je 0x7fff48260d3e ; <+192>
0x7fff48260cc0 <+66>: cmpl $0xd0000, %eax ; imm = 0xD0000
0x7fff48260cc5 <+71>: jb 0x7fff48260d2d ; <+175>
0x7fff48260cc7 <+73>: movq %rbx, %rdi
0x7fff48260cca <+76>: callq 0x7fff486252fa ; symbol stub for: objc_opt_class
0x7fff48260ccf <+81>: movq 0x41607402(%rip), %rsi ; "_isInternalTableView"
0x7fff48260cd6 <+88>: movq %rax, %rdi
0x7fff48260cd9 <+91>: callq *0x3e51a641(%rip) ; (void *)0x00007fff513f7780: objc_msgSend
0x7fff48260cdf <+97>: testb %al, %al
0x7fff48260ce1 <+99>: jne 0x7fff48260d2d ; <+175>
0x7fff48260ce3 <+101>: movq 0x3e519b46(%rip), %rax ; (void *)0x00007fff89ea06a0: _NSConcreteStackBlock
0x7fff48260cea <+108>: movq %rax, -0x38(%rbp)
0x7fff48260cee <+112>: movl $0xc2000000, %eax ; imm = 0xC2000000
0x7fff48260cf3 <+117>: movq %rax, -0x30(%rbp)
0x7fff48260cf7 <+121>: leaq 0x46728(%rip), %rax ; __UITableViewAlertForLayoutOutsideViewHierarchy_block_invoke
0x7fff48260cfe <+128>: movq %rax, -0x28(%rbp)
0x7fff48260d02 <+132>: leaq 0x3e51d237(%rip), %rax ; __block_descriptor_40_e8_32s_e5_v8?0l
0x7fff48260d09 <+139>: movq %rax, -0x20(%rbp)
0x7fff48260d0d <+143>: movq %rbx, %rdi
0x7fff48260d10 <+146>: callq *0x3e51a61a(%rip) ; (void *)0x00007fff51411350: objc_retain
0x7fff48260d16 <+152>: movq %rax, -0x18(%rbp)
0x7fff48260d1a <+156>: cmpq $-0x1, 0x416ca5c6(%rip) ; _UIInternalPreference_TableViewReorderingUsesDragAndDrop_block_invoke_10.__s_category + 7
0x7fff48260d22 <+164>: jne 0x7fff48260d52 ; <+212>
0x7fff48260d24 <+166>: movq %rax, %rdi
0x7fff48260d27 <+169>: callq *0x3e51a5fb(%rip) ; (void *)0x00007fff51411000: objc_release
0x7fff48260d2d <+175>: movq %rbx, %rdi
0x7fff48260d30 <+178>: addq $0x30, %rsp
0x7fff48260d34 <+182>: popq %rbx
0x7fff48260d35 <+183>: popq %r14
0x7fff48260d37 <+185>: popq %rbp
0x7fff48260d38 <+186>: jmpq *0x3e51a5ea(%rip) ; (void *)0x00007fff51411000: objc_release
0x7fff48260d3e <+192>: movl $0xd0000, %edi ; imm = 0xD0000
0x7fff48260d43 <+197>: callq 0x7fff48093724 ; _UIApplicationLinkedOnOrAfter
0x7fff48260d48 <+202>: testb %al, %al
0x7fff48260d4a <+204>: jne 0x7fff48260cc7 ; <+73>
0x7fff48260d50 <+210>: jmp 0x7fff48260d2d ; <+175>
0x7fff48260d52 <+212>: leaq 0x416ca58f(%rip), %rdi ; UITableViewAlertForLayoutOutsideViewHierarchy.once
0x7fff48260d59 <+219>: leaq -0x38(%rbp), %r14
0x7fff48260d5d <+223>: movq %r14, %rsi
0x7fff48260d60 <+226>: callq 0x7fff48624f8e ; symbol stub for: dispatch_once
0x7fff48260d65 <+231>: movq 0x20(%r14), %rax
0x7fff48260d69 <+235>: jmp 0x7fff48260d24 ; <+166>
Can you please help me to remove the warning?
You added constraint before you add your view to view hierarchy. Thas is why you get this error. Be sure that turn by turn adding, for example :
view.addSubview(tableView) // 1
// 2 and start adding constraints..
tableView.translatesAutoresizingMaskIntoConstraints = false
...