2015-06-09 12 views
6

ich FehlerSwift 2.0: schließt Fehler Verschlusstyp

Unable

Verschlussart im aktuellen Kontext

In Code zu schließen, die 1,2

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

Ganze in Swift arbeitet Controller anzeigen, bei dem dieser Fehler auftritt

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

Können Sie den gesamten Kontext anzeigen? '_mapVC' ist vermutlich eine Eigenschaft einer Klasse, und Ihre Deklaration scheint in Playground zu funktionieren, wenn ich sie in eine einfache Klassendefinition setze (und Ihren' MapViewController' vortäusche) ... – Grimxn

+0

Zusätzlicher Controller, aber mit gleichem Fehler ... – UnRewa

+2

Haben Sie versucht, eine Typannotation hinzuzufügen? 'private faul var _messagesVC: MessagesViewController = {..}()' –

Antwort

4

Ich habe zwei Möglichkeiten gefunden, um diesen Fehler loszuwerden.

Zuerst explizit die Eigenschaft mit ihrem Typ annotieren. Ich finde das sehr seltsam, weil Swift von der Initialisierung nur auf das schließen soll.

lazy var embeddedViewController: CustomViewController = CustomViewController() 

Die zweite ist nur das Lazy-Keyword zu entfernen.

Also ich denke, das ist ein Fehler derzeit faulen Eigenschaften in Swift 2.0 plagen?

+0

Explizit erklären, der Typ funktioniert für mich – onmyway133