当前位置:  开发笔记 > IOS > 正文

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

如何解决《为什么我可以返回一个返回类型为AnyObject的bool?与UIKit而不是达尔文》经验,为你挑选了1个好方法。

我正在键入一些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)
}

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有