【发布时间】:2015-08-24 02:50:54
【问题描述】:
我得到错误
无法在当前上下文中推断闭包类型
在 Swift 1.2 中运行的代码中
private lazy var _messagesVC = { return MessagesViewController(nibName:"MessagesViewController",bundle:nil)}()
我得到这个错误的整个视图控制器
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);
}
}
【问题讨论】:
-
你能展示整个上下文吗?
_mapVC可能是某个类的属性,如果我把它放在一个简单的类定义中(并欺骗你的MapViewController),你的声明似乎在 Playground 中有效...... -
添加了其他控制器但同样的错误...
-
您是否尝试过添加类型注释?
private lazy var _messagesVC: MessagesViewController = { .. }() -
是的,它的帮助请创建答案,我会关闭这个问题
标签: swift types init lazy-initialization