gpt4 book ai didi

iOS 代码在主线程中的 commitAnimations 上崩溃

转载 作者:行者123 更新时间:2023-11-29 04:37:12 25 4
gpt4 key购买 nike

我正在制作 ScrollView 内容插图的动画,以便下拉刷新。

NSLog(@" in main thread? %d", [NSThread isMainThread]); // prints 1
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.3];
[scrollView setContentInset:UIEdgeInsetsMake(0.0f, 0.0f, scrollView.contentInset.bottom, 0.0f)];
// Crash here
[UIView commitAnimations];

我在提交动画时发生崩溃,并且导致主线程崩溃。如果我删除这段代码,我的应用程序永远不会崩溃。如果将范围缩小到这段代码,此时可能会导致崩溃的原因是什么?

最佳答案

由于动画是滚动的,并且 cellForRowAtIndexPath 引用了核心数据获取请求的结果,因此动画使应用程序崩溃,因为我在重新加载 TableView 数据之前不小心这样做了。发生这种情况是因为 TableView 中的数据不再可用,因此动画滚动到不再存在的行。

经验教训 - 如果您正在使用 ScrollView 动画和核心数据,请在选择重新加载表格 View 数据时要小心。不要执行获取,然后滚动,然后重新加载 TableView 数据。请执行提取,然后重新加载 TableView 数据,然后滚动。

如果崩溃时出现错误消息,情况会非常明显。

关于iOS 代码在主线程中的 commitAnimations 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10925919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com