当前位置:   iOS > 正文

为什么我可以返回一个返回类型为AnyObject的bool?与UIKit而不是达尔文

darwin,uikit,ios,swift,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

我正在键入一些Swift代码,因为我很无聊并且一段时间没有编写Swift.

当我包含UIKit时,为什么这段代码有用呢?

import UIKit

public class foo {
  private var boolTest : Bool?

  init() {
    boolTest = true
  }

  public func call() -> AnyObject? {
    if let bool = boolTest {
      return bool
    }
    else {
      return nil
    }
  }
}

foo().call()

当我导入Darwin而不是UIKit时,它不起作用.

import Darwin

public class foo {
  private var boolTest : Bool?

  init() {
    boolTest = true
  }

  public func call() -> AnyObject? {
    if let bool = boolTest {
      return bool
    }
    else {
      return nil
    }
  }
}

foo().call()

除了我将UIKit改为达尔文之外,它的代码完全相同.错误说不能将类型bool返回给AnyObject?

当我包含UIKit时,它不会给出错误消息.

那么有谁知道是什么原因造成的?



1> Rob Napier..:

Foundation从添加了自动桥接BoolNSNumber(这是一个AnyObject).

extension Bool : _ObjectiveCBridgeable {
    public init(_ number: NSNumber)
}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/iOS/detail/7999
推荐阅读
相关标签
  

闽ICP备14008679号