Swift 2.0:推断闭包类型错误
Posted
技术标签:
【中文标题】Swift 2.0:推断闭包类型错误【英文标题】:Swift 2.0 : infer closure type error 【发布时间】: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 = .. ()
是的,它的帮助请创建答案,我会关闭这个问题
【参考方案1】:
我找到了两种方法来消除这个错误。
首先,用它的类型显式地注释属性。我觉得这很奇怪,因为 Swift 应该只是从初始化中推断出来。
lazy var embeddedViewController: CustomViewController = CustomViewController()
第二个就是去掉lazy关键字。
var embeddedViewController = CustomViewController()
所以我猜这是目前困扰 Swift 2.0 中惰性属性的错误?
【讨论】:
以上是关于Swift 2.0:推断闭包类型错误的主要内容,如果未能解决你的问题,请参考以下文章