当前位置: 首页 > 面试题库 >

如何快速进行可选的关闭?

商燕七
2023-03-14
问题内容

我试图在Swift中声明一个需要可选闭包的参数。我声明的函数如下所示:

class Promise {

 func then(onFulfilled: ()->(), onReject: ()->()?){       
    if let callableRjector = onReject {
      // do stuff! 
    }
 }

}

但是Swift抱怨说,“条件”中的绑定值必须是一个可选类型,其中声明了“ if let”。


问题答案:

您应该将可选的闭包括在括号中。这将适当地限制?操作员的范围。

func then(onFulfilled: ()->(), onReject: (()->())?){       
    if let callableRjector = onReject {
      // do stuff! 
    }
 }


 类似资料:
  • 问题内容: 所以我试图获取我选择的行的textLabel的值。我尝试打印它,但是没有用。经过研究,我发现该代码有效,但仅在Objective-C中有效。 我找不到Swift的任何解决方案。虽然可以打印indexpath.row,但这不是我所需要的。 所以我该怎么做?或此代码的“快速版本”是什么? 问题答案: 试试这个:

  • 编译器错误,这是有意义的,因为它将在函数返回后调用。 但如果我将闭包设置为可选的,那么没有编译器错误,这是为什么?在函数返回后仍然可以调用闭包。

  • 问题内容: (这是该问题的后续内容: 使用具有多个键的可解码协议。) 我有以下Swift代码: 我知道,如果我使用并且没有该属性,但如果它是一个可选变量,它仍然可以正确处理它。 例如,以下JSON可使用上面的代码来解析它。 以下JSON也适用。 但是以下操作无效。 如何使所有3个示例正常工作?有什么类似的? 问题答案: 您可以使用以下功能: 返回一个值,该值指示解码器是否包含与给定密钥关联的值。与

  • 问题内容: 有人可以帮我为什么下面的代码不起作用吗?我正在Xcode.1 Playground中对其进行测试 问题答案: 操场是沙盒,因此您将无法仅从用户文件夹中的任何位置抓取文件。以下是将该文件添加到游乐场以使其可访问的方法: 在Finder中找到您的“ .playground”文件 右键单击并选择“显示包装内容” 您应该看到“ timeline.xctimeline”,“ contents.x

  • 问题内容: 我想在我的Swift应用程序中添加手电筒功能。我该怎么做呢? 问题答案: 更新#1: (没有返回预期值,这或许是因为它已经修改) 更新#2: 对于Swift 2.0 要将闪光灯从打开切换到关闭(不仅像疯猪的回答中那样“打开”),还可以使用以下方法: 我使用嵌套的do-catch块来实现注释中的Awesomeness建议。这样,即使发生故障,也可以将设备正确解锁以进行配置。 更新#3:

  • 我正在尝试在我的Swift应用程序中创建一个服务对象,以便更轻松地处理请求。我已经把它连接起来了,但是我可能误解了完成处理器。 我有这个函数,它只是发布到我正在运行的本地APIendpoint。 我需要做的就是把这个名字传给我在这里做的函数 但是,我现在收到此错误。 调用中缺少参数“completion”的参数 我的目标是返回< code>Response对象,这样我就可以访问它的属性,在UI中做