2016-05-05 3 views
0

versuche ich, für ein vorhandenes Login mit Sitzung zu prüfen, aber ich diesen FehlerSwift 2: AnyObject? ist nicht konvertierbar NSString

‚ANYOBJECT?‘ geworfen wurde ist nicht konvertierbar in 'NSString'; Wolltest du 'wie!' niedergeschlagen werden?

bei dieser Codezeile

self.usernameLabel.text = prefs.valueForKey("USERNAME") as NSString 

Der vollständige Codeblock ist diese

import UIKit 

class ViewController: UIViewController { 

@IBOutlet weak var usernameLabel: UILabel! 

//Check for existing login, else show login 
override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(true) 

    let prefs: NSUserDefaults = NSUserDefaults.standardUserDefaults() 
    let isLoggedIn:Int = prefs.integerForKey("ISLOGGEDIN") as Int 
    if (isLoggedIn != 1) { 
     self.performSegueWithIdentifier("goToLogin", sender: self) 
    } else { 
     self.usernameLabel.text = prefs.valueForKey("USERNAME") as NSString 
    } 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


} 

Was ist der beste Weg, um es zu beheben?

Error thrown

+0

Sie können als verwenden! NSString –

Antwort

2

try this ...

if let username = prefs.valueForKey("USERNAME") as? String{ 
     self.usernameLabel.text = username 
    } 

oder wenn Sie wollen NSString verwenden .. (nur eine Option)

if let username = prefs.valueForKey("USERNAME") as? NSString{ 
     self.usernameLabel.text = username 
    } 
0

Änderung String NSString,

self.usernameLabel.text = prefs.valueForKey("USERNAME") as? String 

seine wor König fein, hoffe es ist hilfreich