相关疑难解决方法(0)

AutoLayout:removeFromSuperview/removeConstraints抛出异常并严重崩溃

我们有选择地使用自动布局约束,主要是为了定位与可编辑字段元素相关的标签(通常是UITextView,UITextField).但是,自从为这些字段实现自动布局以来,每当我们卸载视图,解除分配等时,我们都会看到一个令人讨厌的异常并崩溃.异常发生的原因是它试图在卸载视图之前从视图中删除约束.

我们的视图/控制器层次结构如下:

UITableViewController (plain style, but with cell appearance to mimic grouped style)
--> UITableViewCell
----> UIViewController (container for editable form)
------> UICollectionViewController (editable form)
--------> UICollectionViewCell
-----------> UIViewController (editable field)
--------------> UILabel (field label)                   **HAS CONSTRAINTS**
--------------> UITextView / UITextField (field value)  **HAS CONSTRAINTS**
Run Code Online (Sandbox Code Playgroud)

很多时候,当上层表格单元被解除分配/替换/重新加载时,我们会看到一个巨大的异常,然后崩溃,因为它试图释放/卸载其中的视图层次结构.

我试图通过捕获异常(没有帮助)并通过在释放/卸载(in viewWillDisappear:)之前强制删除受影响的视图和所有子视图上的所有约束来缓解崩溃,它似乎没有帮助.我甚至试图逐个删除这些约束,看看是否有一个特别是导致麻烦但是当我们打电话removeConstraint:removeConstraints:在容器上准备消失时它们都会爆炸.

我很困惑!这是我们例外的一小部分 - 大约有3000行被切断了,所以如果你需要更多,请问.

Exception while deallocating view: { Rows:
    0x18911270.posErrorMarker == 4 + 1*0x18911270.negError + 1*0x189112f0.marker + -1*0x189113f0.negError + 1*0x189113f0.posErrorMarker + 1*0x18911a60.marker + -0.5*0x1892dae0.negError + 0.5*0x1892dae0.posErrorMarker + …
Run Code Online (Sandbox Code Playgroud)

ios automatic-ref-counting autolayout

53
推荐指数
2
解决办法
2万
查看次数

iOS中的NSInternalInconsistencyException posErrorMarker错误

我收到一个无法确定性地重新创建的随机错误,这使得调试很麻烦.例外是

NSInternalInconsistencyException {Rows:0x1e5eb080.posErrorMarker == 1 + 1*0x1e5eb080.negError + 1*0x1fa51a40.marker 0x1f933020.negError == 274 + 1*0x1f933020.posErrorMarker + -1*0x1fb84100.marker 0x1fb8d610.negError == 274 + -1

> 
0CoreFoundation 0x32c1b3e7 + 162
1libobjc.A.dylib 0x3a916963 objc_exception_throw + 30
2CoreFoundation 0x32c1b307 + 106
3Foundation 0x335ce24f + 190
4Foundation 0x335d0871 + 60
5Foundation 0x335d19e9 + 624
6Foundation 0x335d9eab + 230
7UIKit 0x34e6211b + 162
8UIKit 0x34e67b9f + 26
9CoreFoundation 0x32b61acd CFArrayApplyFunction + 176
10UIKit 0x34e67bdf + 90
11CoreFoundation 0x32b61acd CFArrayApplyFunction + 176
12UIKit 0x34e67bdf + 90
13CoreFoundation 0x32b61acd CFArrayApplyFunction …
Run Code Online (Sandbox Code Playgroud)

core-data objective-c-blocks ios6 uicollectionview

8
推荐指数
0
解决办法
779
查看次数

无法找到传入头部UIButton的传出行头

我在iOS7上的自动布局问题上崩溃了(iOS8可以工作)

问题是-该UIButton的指示(0x7b7780a0)不存在(当我看recursiveDescriptionUIView).

我该如何调查这个?从哪儿开始?

编辑:

我遇到了这个答案,/sf/answers/1909885001/确实我在回溯中有一个非常小的浮点数,但是 - 我没有在代码中添加约束,我的所有乘数都是1

编辑: 发给自己一个答案 - 但/sf/answers/1909885001/是一个很好的答案,最终指导我解决方案

碰撞:

   2015-03-10 15:50:08.152 Cookila copy[5779:607] Objective: {objective 0x7b84c960: <750:-1.04308e-05, 250:6.61612e-05> + <750:-1.04308e-07, 250:8.9407e-08>*UIButton:0x7b6299c0.Width{id: 408} + <750:-2.23517e-08, 250:8.9407e-08>*UIButton:0x7b661ad0.Width{id: 385} + <750:-1.86265e-07, 250:8.9407e-08>*UIButton:0x7b7780a0.Width{id: 388} + <750:1.04308e-07, 250:-1.3411e-07>*UIView:0x7b6547d0.Width{id: 419}}
2015-03-10 15:50:09.674 Cookila copy[5779:607] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '<NSISEngine: 0x7b84c120>{ Rows:
    UILayoutContainerView:0x7b6505a0.Height{id: 118} == 960 + 1*0x7b7679b0.marker{id: 49} + 2*0x7b638350.marker{id: 135}
    UILayoutContainerView:0x7b6505a0.Width{id: 115} == 640 + 1*0x7b767980.marker{id: 46} + 2*0x7b6592b0.marker{id: …
Run Code Online (Sandbox Code Playgroud)

uibutton ios autolayout

8
推荐指数
1
解决办法
4773
查看次数