块与 Objective-C 中的普通方法和函数有何不同?

2024-02-11

与 Objective-C 中的普通方法和函数相比,使用块有什么优势?我已阅读文档,但找不到块而不是其他语言功能的具体用法。

我确信我错过了一些东西,所以有人可以用比现有文档更简单的方式解释块的优点吗?


块是一种包装一段代码并有效存储它以供以后使用的方法。块通常用来代替回调函数。 iPhone SDK 中较新的 API 使用这种方式进行阻止。 API 将获取一个代码“块”,并在完成后运行该代码。

它使您不必创建自己的线程并维护每个线程的状态、管理锁、设置自动释放池等。

与 Grand Central Dispatch (GCD) 一起使用时,API 块可以在队列上运行,并且可以轻松地使整个代码部分异步运行,但仍然保持多线程代码所需的稳健性。

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

块与 Objective-C 中的普通方法和函数有何不同? 的相关文章

  • 在哪里可以找到有关 IOS 日历同步的优秀教程? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发 iPhone 应用程序 如何将新事件与 iOS 日历同步 您可以浏览此 github 代码
  • Iphone 上的 Javascript 日期解析

    我正在开发一个针对移动设备的离线 Javascript 网站 iPhone 就是这样的一种移动设备 我正在尝试从 REST API JSON 对象的成员 解析日期 我在用着 Date parse 2010 03 15 10 30 00 这适
  • NSNumber numberWithInt 在数字 >= 13 上崩溃

    我对 Objective C 还很陌生 我已读完类似的问题 https stackoverflow com questions 2533355 nsnumber 13 wont retain everything else will但我不知
  • 如何在 iOS 中通过 3G 连接创建无线热点

    如果我愿意 我将如何创建一个像这样的应用程序MyWi http intelliborn com mywi html 即 WiFi 网络共享应用程序 实现该功能需要哪些步骤 我需要使用哪些框架 库 我们的目标不是尝试将此应用程序放入应用程序商
  • 如果 UIGestureRecognizer 触发,如何取消按钮点击?

    更新 问题似乎是对另一个 GestureRecognizer 的依赖失败 请参阅此问题下面的评论和测试项目 在我的 iPhone 应用程序中 我有一个包含多个 UIButtons 作为子视图的视图 该视图还有一个 UITapGestureR
  • iPhone 应用程序名称有哪些限制? (它们记录在[哪里]?!)

    我花了 2 天 和很多头 墙重击 终于发现临时分发对我不起作用的原因是因为我的应用程序名称包含 UTF 8 字符 我仍然对像苹果 iPhone 这样广泛的国际平台如何禁止这种行为感到困惑 i e 如果我的应用程序是一款中国围棋游戏 我是否可
  • 动态框架中未定义的架构符号

    我正在开发一个 iOS 框架 该框架包含多个第三方框架并使用 UnitySendMessage C 方法与 Unity 进行通信 我想创建一个动态框架 支持 iOS8 但我偶然发现以下编译错误 Undefined symbols for a
  • 如何在没有 Xcode 的情况下提交 iOS 应用程序?

    我是一名合同开发商 我已经为客户编写了一个应用程序 是的 使用 Xcode 现在我们准备发货了 我想向他发送一份应用程序副本 他可以签署该副本并将其提交到 iTunes 应用程序商店 但是他没有或没有使用 Xcode 虽然这是一个备份计划
  • iPhone签名捕捉

    是否可以通过电缆 USB 连接将签名从 iPhone 传输到 xls 文件 因此 这可能不完全是您正在寻找的内容 但这就是我捕获用户 用手指 手写笔 绘制的签名的方式 您的 UIImageView 将具有绘制的签名 我没有考虑过如何将签名图
  • iOS 中的视频可以进行反卷积吗?

    我想拍摄击球手挥动棒球的镜头 但球棒很模糊 视频为 30 fps 通过研究 我发现反卷积似乎是最小化运动模糊的方法 但我不知道是否或如何在我的 iOS 应用程序后处理中实现它 我希望有人能给我指出正确的方向 比如如何在 iOS 中应用反卷积
  • 文档 Main.storyboard 需要 Xcode 8.0 或更高版本

    我下载了 Xcode beta 并打开了现有的项目 看看它如何与 Xcode 8 beta 一起使用 我从 Xcode 8 打开了 Storyboard 文件 现在 当我从 Xcode 7 3 打开项目时 我无法打开故事板文件 它给出了以下
  • 如何在 iPhone 上使用 glib? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这几天我正在做一个项目 我的项目中包含了一个第三方库 该库是基于glib的 这真的让我抓狂 大家能告诉我我该怎么办吗 如何在 iPho
  • 锁定时 AVAudioPlayer 在 iPhone 5 中不播放音频

    使用 AVAudioPlayer 我尝试在 iphone 播放器播放时播放声音 当设备锁定时也是如此 问题是 在 iPhone 4s ios 7 中 效果很好 但在带有 6 和 7 ios 的 iPhone 5 上没有任何反应 In the
  • MPMoviePlayerViewController,删除 Quicktime 符号/添加背景图像?

    我有一个播放音频的 MPMoviePlayerViewController 我想删除 Quicktime 徽标和 或向播放器添加自定义背景图像 但保留播放控件 我发誓我在 iOS 5 之前就已经这样做过 但我无法重新弄清楚 我尝试过的事情
  • 使用 popToRootViewController 时我丢失了导航栏

    我有一个 iOS 应用程序 其中主屏幕是 UICollectionViewController 从集合视图中选择项目时 视图将推送到该项目的详细信息视图 在细节视图中 我构建了一个从侧面移出的抽屉 滑块 为了让视图看起来像我想要的那样 我隐
  • 如何显示AVPictureInPictureController?

    我正在尝试使用播放视频AV画中画控制器最近在IOS9 使用此代码 AVPlayer AVPlayer AVPlayer playerWithURL url AVPlayerLayer layer AVPlayerLayer playerLa
  • dequeueReusableCellWithIdentifier: 如何工作?

    我想要一些精确的信息dequeueReusableCellWithIdentifier kCellIdentifier 如果我理解得很好 下面的 NSLOG 应该只打印一次 但事实并非如此 那么 dequeueReusableCell 的意
  • AFNetworking 2.0 可达性不起作用

    我在使 AFNetworking Reachability 模块正常工作时遇到一些问题 我已经使用 ReachabilityStatusChangeBlock 设置了 AFHTTPRequestOperationManager 但它从未被调
  • Objective-C 字符串文字的预处理器宏值

    我在构建设置中定义了一个预处理器宏 FOO BAR 我想将该值转换为可以传递给方法的 Objective C 字符串文字 以下 define 不起作用 但它应该展示我想要实现的目标 define FOOLITERAL FOO want FO
  • 从另一个选项卡重新加载 UITableView

    我在尝试重新加载时遇到问题UITableView从 XML 源加载的单元格数据 这是场景 应用程序包含选项卡 其中一个选项卡中有一个表格视图 它从 XML 文件获取数据并且工作正常 但问题是当我想要更改提要类别并从另一个选项卡更改 XML

随机推荐

  • 当没有文件要处理时,如何防止在SSIS包中导入Excel?

    我有一个导入 Excel 文件的 SSIS 包 在包内 我有一个脚本任务 用于在执行 Excel 导入过程之前检查 Excel 文件是否存在 当 Excel 文件不存在时 我无法执行包 因为AcquireConnection error 当
  • SQL Server 中的用户定义数据类型有多酷? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 SQL Server 中的用户定义数据类型是中级 SQL 用户应该了解和使用的吗 使用 UDT 的优点和缺点是什么 我的建议是永远不要使用它们
  • 为什么 RestKit 改变我的响应内容类型?

    简而言之 我尝试使用以下命令从服务器获取数据content typehttp请求头设置为 text html 但由于某种原因 RestKit 将其更改为application JSON 解释 如果我只使用AF网络 https github
  • 从领域数据库中获取单个列 (Android)

    我是领域的初学者 我有一个包含 3 列的表 其名称为ID 姓名 电子邮件 地址 为了获取 Name 列的数据 我们使用如下查询 从表名中选择名称 对于 SQLite 如果我们在Android中使用Realm 那么我们必须使用哪种方法来只获取
  • jinja2 如何删除尾随换行符

    我正在使用 jinja 2 输出 yaml 文件 但似乎无法摆脱尾随换行符和 for 循环的末尾 例如下面的 request path path headers origin somedomain com user agent agent
  • 解雇ViewController:不工作

    我有一个名为 vc0 的视图控制器 其显示如下 self presentViewController vc1 animated YES completion nil 在 vc1 中 我有一个按钮来呈现另一个视图控制器 self presen
  • 获取 Java 数组部分的视图[重复]

    这个问题在这里已经有答案了 我指的是在Java中只获取数组的一部分 https stackoverflow com questions 11001720 get only part of an array in java 它使用范围复制 方
  • set_time_limit 不起作用

    我有一个bigintphp 中的类 用于计算大数 除了时间限制外 效果很好 我设置了时间限制 set time limit 900 在我的 bigint php 文件中 它在本地主机中工作 但在我的网络主机中 当我尝试计算 999 999
  • Angular 7:如何将文件/图像与我的反应式表单一起提交?

    我创建了带有文本输入的简单反应式表单 当提交表单时 我想传递文件输入中的图像 每次我用谷歌搜索时 我都会得到教程 它们向我展示如何上传文件 但它是在没有其他输入字段的情况下完成的 我知道如何做到这一点 但我不明白如何在一次提交中提交表单和文
  • 带 MonoTouch 的 sizeWithFont

    MonoTouch 中的 sizeWithFont 相当于什么 如果没有这样的方法 是否可以通过其他方式调用它 我想做的就是根据文本调整标签大小 下一个更新 MonoTouch 1 1 将提供 UIView StringSize strin
  • NSURLErrorDomain错误代码1002描述

    我是新来的iOS发展 我正在尝试加载一个JSON 这是我的功能 func loadmyJSON urlPath String let url NSURL NSURL string urlPath let session NSURLSessi
  • 从 SQLite 中的 DATETIME 获取月份

    我正在尝试从 a 中提取月份DATETIMESQLite 中的字段 month dateField 效果不太好strftime m dateStart 有任何想法吗 我不明白 答案就在你的问题中 select strftime m date
  • 如何通过 Websocket 发送文件以及附加信息?

    我正在开发一个 Web 应用程序 用于从管理界面将图像 视频等发送到两个显示器 我在服务器端使用 Node js 中的 ws 我已经实现了选择服务器上可用的图像和外部 URL 并将它们发送到客户端 但我也希望能够通过文件输入直接发送从设备中
  • 单选按钮单击和重新单击

    我在 Android 中有一个单选按钮组 选择项目时我会收到事件 目前为止还正常 但如果用户单击已选择的项目 我不会收到该事件 有没有办法知道 接收事件 用户何时点击单选按钮 无论它是否被选择 多谢 我不明白为什么当单击已选中的单选按钮时会
  • c++11 std::hash 函数对象类线程安全

    在 c 11 中声明的哈希函数类对象
  • 使用共享存储库模型的 GitHub 协作

    有人可以向我提供 GitHub 协作备忘单 供希望对存储库具有平等访问 权利的两人团队使用吗 我对使用分叉的必要性感到困惑 这对于开发人员分散的大型开源项目来说似乎是有意义的 但当我和我的搭档彼此相距 10 英尺时 似乎有点矫枉过正 Tha
  • Git:如何在同一分支中的提交之上重新建立分支? [复制]

    这个问题在这里已经有答案了 参考文献这个优秀的答案 https stackoverflow com a 38430972 3398271 我读过并且 我认为 我理解了 但据我所知并没有回答我的具体问题 因为它解释了如何重新基于提交中的提交
  • Selenium Firefox IDE 可以实现吗?

    这是这个问题的后续 想要创建一个表单填充程序 java jsp html 足够吗 https stackoverflow com questions 17329996 want to create a form filler is java
  • Dropbox Saver 可以接受来自 createObjectURL() 的数据吗?

    Dropbox Chooser 和 Saver 工具 https www dropbox com developers dropins对于这两项任务来说似乎非常酷 让用户从 Dropbox 中选择一个文件 页面就可以下载它 即 Dropbo
  • 块与 Objective-C 中的普通方法和函数有何不同?

    与 Objective C 中的普通方法和函数相比 使用块有什么优势 我已阅读文档 但找不到块而不是其他语言功能的具体用法 我确信我错过了一些东西 所以有人可以用比现有文档更简单的方式解释块的优点吗 块是一种包装一段代码并有效存储它以供以后