Swift 2.0:推断闭包类型错误

温雷瓦

我得到错误

无法在当前上下文中推断闭包类型

在可在Swift 1.2中运行的代码中

private lazy var _messagesVC =  { return MessagesViewController(nibName:"MessagesViewController",bundle:nil)}()

我收到此错误的整个View Controller

import UIKit
class FriendsViewController: UIViewController {

@IBOutlet weak var containerView: UIView!
@IBOutlet weak var segmentContainerView: UIView!
private lazy var _connectionVC  =  { return FriendsConnectionViewController(nibName:"FriendsConnectionViewController",bundle:nil)}()
private lazy var _messagesVC =  { return MessagesViewController(nibName:"MessagesViewController",bundle:nil)}()


override func viewDidLoad() {
    super.viewDidLoad()
    self.selectedControllerFrom(index: 0)
     // Do any additional setup after loading the view.
}

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

}

func selectedControllerFrom(index index:UInt)
{
    var vc:UIViewController?
    switch index{
    case 0: vc = _connectionVC
    case 1: vc = _messagesVC
    default : vc = nil
    }
    if vc != nil{
         self.showViewController(vc!,containerView: containerView);
    }
}
MLQ

我找到了两种方法来消除此错误。

首先,用属性类型显式注释属性。我觉得这很奇怪,因为Swift应该从初始化中推断出来。

lazy var embeddedViewController: CustomViewController = CustomViewController()

第二个只是删除lazy关键字。

var embeddedViewController = CustomViewController()

所以我猜这是当前在Swift 2.0中困扰懒惰属性的错误吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章