2015-06-09 19 views
6

tôi nhận được lỗiSwift 2.0: suy ra loại đóng lỗi

Không thể suy ra kiểu đóng cửa trong bối cảnh hiện nay

Trong mã được làm việc trong Swift 1,2

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

Tổng số Xem Trình điều khiển nơi tôi nhận được lỗi này

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); 
    } 
} 
+0

Bạn có thể hiển thị toàn bộ ngữ cảnh không? '_mapVC' có lẽ là thuộc tính của một số lớp, và khai báo của bạn dường như làm việc trong Playground nếu tôi đặt nó bên trong một định nghĩa lớp đơn giản (và giả mạo' MapViewController') của bạn ... – Grimxn

+0

Thêm bộ điều khiển khác nhưng với cùng lỗi ... – UnRewa

+2

Bạn đã thử thêm chú thích kiểu chưa? 'private lazy var _messagesVC: MessagesViewController = {..}()' –

Trả lời

4

Tôi đã tìm thấy hai cách để loại bỏ lỗi này.

Đầu tiên, chú thích rõ ràng thuộc tính với loại của nó. Tôi thấy điều này rất lạ vì Swift được cho là chỉ suy ra điều này từ khi khởi tạo.

lazy var embeddedViewController: CustomViewController = CustomViewController() 

Cách thứ hai chỉ là xóa từ khóa lười.

var embeddedViewController = CustomViewController() 

Vì vậy, tôi đoán đây là lỗi hiện đang gây ra các thuộc tính lười biếng trong Swift 2.0?

+0

Khai báo rõ ràng loại làm việc cho tôi – onmyway133

Các vấn đề liên quan