如何在 Swift 中创建本地作用域?

2023-12-07

我经常在 Objective-C 中使用本地作用域来使命名更清晰。

{
    UILabel *label = [[UILabel alloc] init];
    [self addSubview:label];
    self.titleLabel = label;
}

我正在尝试用 Swift 重写这段代码,如下所示:

{
    let label = UILabel()
    self.addSubview(label)
    self.titleLabel = label
}

这让我得到以下错误:

Error: Braced block of statements is an unused closure.

那么如何在 Swift 中创建本地作用域呢?


Update:在 Swift 2.0 中,你只需使用do关键词:

do {
    let label = UILabel()
    self.addSubview(label)
    self.titleLabel = label
}

对于 Swift 2.0 之前的版本来说也是如此:

您可以定义与此类似的内容:

func locally(@noescape work: () -> ()) {
    work()
}

然后使用这样的locally块如下:

locally {
    let g = 42
    println(g)
}

(灵感来自locally在斯卡拉的Predef目的。)

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

如何在 Swift 中创建本地作用域? 的相关文章

随机推荐

  • 类型错误:无法腌制 PyCapsule 对象

    I use dill将 ML 模型保存到文件 当我运行测试时python m unittest有用 但是如果我尝试运行测试python setup py test它出现错误TypeError can t pickle PyCapsule o
  • 为什么结构化绑定引入变量作为值,而不是引用?

    我正在学习结构化绑定声明 我的理解是在auto x y expr 变量x and y引入了类型 引用std tuple element
  • Django:在事件发生后将帖子离线

    我正试图在某个活动 某个确定的日期 之后将帖子下线 我开发了一个简单的模型来测试我的目标 并在模型中放置了一个函数 命名为 is expired 理想情况下 必须定义帖子是否在线 下面有model from django db import
  • Android 中每秒都会触发 Intent 吗?

    我正在寻找每秒广播的意图 我调查了android intent action TIME TICK但这种意图每分钟都会广播 我知道 AlarmManger handler thread 可以用于此目的 但我倾向于使用系统广播意图 请分享您的想
  • 如何向 MAUI 中的 UI 元素添加上下文菜单?

    下面的代码不起作用 错误 XLS0415 在类型 Grid 中找不到可附加属性 ContextActions 并且 未找到类型 FlyoutBase
  • 大文件复制期间的进度(复制项目和写入进度?)

    有没有办法在 PowerShell 中复制一个非常大的文件 从一台服务器到另一台服务器 并显示其进度 有一些解决方案可以将 Write Progress 与循环结合使用来复制许多文件并显示进度 但是我似乎找不到任何可以显示单个文件进度的内容
  • 子进程给出错误。 “该系统找不到指定的文件”

    这是我的代码 import urllib import requests from bs4 import from subprocess import Popen PIPE import os connectString SYSTEM me
  • 更改mysql查询ORDER BY中的时间格式

    我正在开发一个项目 其中用户拥有以正常格式存储日期的数据库2013 年 3 月 8 日我想用日期对输出进行排序 但没有得到正确的输出 bcos 未使用时间戳 那么有什么方法可以在 mysql 查询中使用或将该日期字段转换为时间戳 SELEC
  • 如何以编程方式操作“开始”菜单的“最近使用的程序”列表? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我正在寻找一种使程序显示 经常 使用的方法 以便它们出现在 开始 菜单的 最近使
  • 来自 JavaScript 的 HTTP 请求使用包含标头的原始消息

    我知道如何使用 jQuery 或 XMLHttpRequest 从 javascript 向我的 REST api 发出 HTTP 请求 我现在想做的是发出请求而不设置标头值的属性 一个HTTP请求消息由组成 请求行 例如 GET imag
  • 避免 Pylint 警告 E1101:对于具有动态属性的类,“.. 的实例没有 .. 成员”

    想象一个函数动态地使用以下方法向对象添加属性setattr 这样做的原因是我想将一些外部结构 例如给定的参数树 映射到一个对象 my object SomeClass apply structure my object some descr
  • 在java中绘制极坐标图

    有谁知道我如何开始在java中绘制极坐标图并在该图上绘制一些点 我的意思是圆和线 我希望用 swing 之类的东西来做到这一点 而不是使用像 Jfreechart 这样的任何库 谢谢 您可能想看看利萨如曲线 的一个例子a 5 b 4 5 4
  • React/Redux useEffect 多次触发调度[重复]

    这个问题在这里已经有答案了 我在使用 useEffect 和dispatch 操作时遇到问题 我正在使用最新版本的react 18 1 0 基本上 我有以下在简单的代码中定义的代码 const Item gt const dispatch
  • 具有不等宽度项目的散景响应行

    我正在尝试在 bokeh 0 12 3 中创建一个响应行 其中包含一个图形和一个小部件框 其中小部件框的宽度比图形小得多 我只能通过以下方式实现前者 from bokeh io import output file show from bo
  • Meteor 中的后台任务

    我想知道 有什么办法可以实现后台任务吗 也许有工人池 你能给我指明方向吗 我正在考虑为此编写软件包 2019年更新 在考虑为任何内容编写包之前 首先查看是否有现有的包可以满足您的需要 在 Meteor 世界中 这意味着在 Atmospher
  • PlaceAutocompleteFragment 单击后消失

    我想实现 AutocompleteTextView 谷歌位置 但是当我单击片段中的 searchView 时 该片段消失了 掉落 My code Override protected void onCreate Bundle savedIn
  • ContextualDeserializer,用于使用 Jackson 将 JSON 映射到不同类型的映射

    此 JSON 片段应映射到包含以下内容的 Java 对象 cars类型字段Map
  • Java3D 绘制空的白色窗口(不在小程序中)

    我正在尝试使用 Java 3D 做一些有趣的事情 并且我正在通过官方教程进行学习 我的问题是 有时它显示得很好 没有任何问题 但有时窗口是白色的 直到我调整窗口大小才显示任何内容 我怎样才能克服这个绘图更新问题 这是所有代码 import
  • 比较时忽略 char 的大写和小写

    这样做的目标是从用户那里获取一个句子并确定每个元音出现了多少个 除了我不确定如何忽略大写和小写字母但我猜测 equalsIgnoreCase 或 toUpperCase 之外 大部分工作都已完成 我还想知道是否有另一种方法可以使用其他一些类
  • 如何在 Swift 中创建本地作用域?

    我经常在 Objective C 中使用本地作用域来使命名更清晰 UILabel label UILabel alloc init self addSubview label self titleLabel label 我正在尝试用 Swi