【问题标题】:iOS App Rotation Causes Freeze [closed]iOS应用轮换导致冻结[关闭]
【发布时间】:2023-04-07 16:51:02
【问题描述】:

我正在编写一个 iOS 7 应用程序,当应用程序首次启动时,如果我旋转到横向,然后再回到纵向,应用程序就会冻结/无响应。没有显示错误消息或给出日志。但是,如果我在旋转之前打开/呈现一个新视图,那么当我回到根视图并旋转以尝试重新创建问题时,就没有问题了。根视图位于故事板中制作的导航控制器中。我没有实现监听或处理旋转事件的方法。打开应用程序时发生的唯一事情是发送 REST API 请求并更新 tableview。这个异步调用是否会抛出我的主 UI 线程? (我可以根据需要为根视图发布代码。)用于 API 的代码来自 StackMob.com 的 SDK。

编辑: 我能够使用 iOS 6.1 重新创建

【问题讨论】:

  • ...可能是因为它仍然只是 beta 并且仍在 NDA 下?
  • 抱歉,我应该澄清一下我是在 iOS 6 上重新创建的
  • 您是否有机会从将在另一个线程上运行的异步调用中更新您的 UI?通过更新 UI,我的意思也很简单,比如获取 UILabel 的文本属性值。这或许可以解释这个问题。
  • 我从异步方法的回调中缓慢删除/添加了所有代码。看来 tableview 刷新控件是导致环聊的错误。如果时间允许,我会进一步测试。

标签: ios uitableview uinavigationcontroller rotation ios7


【解决方案1】:

我能够通过将刷新控件包装在条件检查中来解决该问题。看来我遇到了极端情况。

[self.managedObjectContext executeFetchRequest:purchaseFetch onSuccess:^(NSArray *results) {

    self.purchases = [NSMutableArray arrayWithArray:results];
    [self.tableView reloadData];
    [self.HUD hide:YES];
    if([self.refreshControl isRefreshing]){ //this check solved the freezing problems
        [self.refreshControl endRefreshing];
    }
} onFailure:^(NSError *error) {
    [self.HUD hide:YES];
    // Log details of the failure
    NSLog(@"Error: %@", error);
}];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-15
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多