由于iOS 7,视图不出现

2024-03-28

我在装有 iOS 7 的 iPhone 上尝试了我的应用程序,除了一件事之外,一切都运行良好。在 iOS 6 版本上,当我执行以下代码时,加载视图(带有活动指示器)出现并在加载结束时消失。在 iOS 7 上,加载期间根本不会出现视图。

self.loadingView.alpha = 1.0;
[self performSelector:@selector(accessServices) withObject:nil afterDelay:0.0f];

访问服务方法:

- (void)accessServices {
     // Getting JSON stuff
     // The code is OK, I just don't copy/paste it here

     self.loadingView.alpha = 0.0;
}

会发生什么 ?这是 iOS 7 的错误吗?


我没想到上述代码的行为会改变,尽管我并不惊讶它可能不会按照您期望的方式工作。如果您在主队列上执行 JSON 操作,您的代码将取决于 UI 更新发生时间的特性,而不是使其显式化。

您可能希望将 JSON 代码显式分派到后台队列,然后将最终的 UI 更新分派回主队列。类似这样的事情的标准模式是:

self.loadingView.alpha = 1.0;

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    // Getting JSON stuff
    // The code is OK, I just don't copy/paste it here

    dispatch_async(dispatch_get_main_queue(), ^{
        self.loadingView.alpha = 0.0;
    });
});

您可以使用 GCD(如上)或操作队列,或其他。但想法是相同的,UI 更新应该发生在主队列上,但任何远程计算昂贵或缓慢的其他事情都应该发生在后台队列上。

无论 iOS 版本如何,此模式都应该有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

由于iOS 7,视图不出现 的相关文章

随机推荐

  • 当组件因父级已从集合中删除而不再可见时,有没有办法获得通知?

    假设我有一个简单的 JFrame 其中 JTabbedPane 包含 3 个面板 第二个面板包含一个 JComponent 当 Tab 2 面板从其容器中删除时 有没有办法通知 JComponent 我的问题是 JComponent 可能位
  • activerecord 相当于 SQL '减号'

    从另一个查询结果中减去一个查询结果的rails方法是什么 数据库特定的 SQL 示例如下 SELECT Date FROM Store Information MINUS SELECT Date FROM Internet Sales 我将
  • 如何高效地重新编码和计数

    我有一个大的 csv 每行三个字符串 形式如下 a c d c a e f g f a c b c a d b f s c a c 我在前两列中将字符串重新编码为整数 然后删除重复项 计算每行有多少个副本 如下所示 import panda
  • Apps 脚本驱动应用服务 - 创建 Google 类型 - Mime 类型的文件

    我正在使用 createFile的方法DriveApp Folder班级 这是语法 createFile name content mimeType 文档在这里 createFile Google DriveApp 服务 https dev
  • 如何在 C/C++ 中格式化带有千位分隔符的数字

    我正在尝试做这个简单的任务 只是使用 C 或 C 格式化数字 但在 Windows CE 下编程 在这种环境中 inbue 和 setlocale 方法都不起作用 最后我这样做没有成功 char szValue 10 sprintf szV
  • 对 99 位数字长的大数进行因式分解的问题

    号码是 112887987371630998240814603336195913423482111436696007401429072377238341647882152698281999652360869 我的代码如下 def getfa
  • 如何从 Angular 4 更新/升级到 Angular 5+

    我需要将我的项目从 Angular 4 更新到 Angular 5 我需要将以下所有依赖项更改为 Angular 5 我还将 Angular CLI 更新到了 1 5 0 我尝试创建新项目 但似乎只创建了 Angular 4 项目 ng 新
  • 如何在图像内的任意点上旋转(以及可能的动画)图像?

    我正在使用 Flutter 并且希望图像在我定义的点上旋转 例如 我希望图像在其右上角设置旋转 向下摆动 的动画 我该怎么做呢 这是一个使用以下方法的解决方案FractionalOffset https docs flutter io fl
  • 导入错误:没有模块名称 urllib2

    这是我的代码 import urllib2 request response urllib2 urlopen http www google com html response read print html 有什么帮助吗 如中所述urll
  • ajax div 重新加载后 datepicker 不会启动

    我在 div 中有一个 jquery datepicker 通过 ajax 更新 我可以在整个页面重新加载后打开一次日期选择器 但是在ajax仅更新包含日期选择器输入的div后 我看不到日期选择器 我尝试过针对类似问题的解决方案 但没有成功
  • 在 Matlab 中使用 Pochhammer 符号

    我尝试使用一个脚本来评估波赫默符号 http mathworld wolfram com PochhammerSymbol html 上升阶乘 在Matlab中 但它无法评估pochhammer x n 每当x即使表达式在以下情况下有效 也
  • -bash: /usr/local/bin/virtualenvwrapper.sh: 没有这样的文件或目录 #10

    我没有 sudo 特权 当我跑步时 printf n s n s n s virtualenv export WORKON HOME virtualenvs source usr local bin virtualenvwrapper sh
  • 使用遗留头文件作为 c++20 模块

    我正在将旧代码转换为可作为 C 模块导入的代码 问题是我希望它仍然可以工作并且可以像旧的标头 源版本一样轻松维护 我该怎么做 如果可能的话 是否可以创建一个导出标头内容的模块 也可以接受任何其他可以让您维护旧的 cpp h 文件和模块文件的
  • 如何设置列表视图项目的填充?

    我在 Windows 窗体中的大图标视图上有一个列表视图 图像彼此非常接近 那么我如何为项目设置填充呢 ListView 中没有方法可以执行此操作 你可以看一下LVM SETICONSPACING http msdn microsoft c
  • 所有视图中的单个 .NET Core Razor C# 函数

    我知道有一种方法可以在视图中添加 C 函数并使用以下方法调用它们 functions 方法在我的视图中 但是有没有一种方法可以创建一个共享视图 其中包含这些函数以包含在控制器视图内部 而无需在每个视图上复制相同的代码行 我尝试使用 inje
  • 输出文件名,不是带有选择字符串的字符串

    我正在使用 powershell 来 grep 特定字符串的源代码 如果字符串在文件中 我想要文件的名称 而不是包含该字符串的代码行 我还想要文件名 仅一次 而不是与文件存在的次数一样多地列出 我目前正在使用 gci include sql
  • 在实体框架和 Sql Server 中创建对象计数器

    注 1 我重新表述了问题 它现在由供应商和订单组成 而不是汽车和零件 注 2 此问题是假设的 我的目标是了解如何创建对象计数器 为了满足监管要求 我需要对每个供应商的每个订单进行顺序编号 我在用着 实体框架 与 SQL Server In
  • Django 使用 Ajax 登录?

    我正在开发一个 jquery 函数来使用 ajax 发布登录表单 在ajax成功中 如果登录成功与否 我想以不同的方式处理响应 因此 在 Django 中 我想知道是否可以在现有登录视图的基础上添加一些成功 错误变量 以便与返回的页面一起发
  • 在 C# 中声明事件的语法是什么?

    在我的班级中 我想声明一个其他班级可以订阅的事件 声明事件的正确方法是什么 这不起作用 public event CollectMapsReportingComplete 你忘了提及type 对于非常简单的事件 EventHandler h
  • 由于iOS 7,视图不出现

    我在装有 iOS 7 的 iPhone 上尝试了我的应用程序 除了一件事之外 一切都运行良好 在 iOS 6 版本上 当我执行以下代码时 加载视图 带有活动指示器 出现并在加载结束时消失 在 iOS 7 上 加载期间根本不会出现视图 sel