斯威夫特 2:任何对象?不能转换为 NSString
Posted
技术标签:
【中文标题】斯威夫特 2:任何对象?不能转换为 NSString【英文标题】:Swift 2: AnyObject? is not convertible to NSString 【发布时间】:2016-05-05 06:47:26 【问题描述】:我正在尝试使用会话检查现有登录,但我被抛出了这个错误
'AnyObject?'不能转换为“NSString”;你的意思是用'as!'强制沮丧?
在这行代码
self.usernameLabel.text = prefs.valueForKey("USERNAME") as NSString
完整的代码块是这样的
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.
修复它的最佳方法是什么?
【问题讨论】:
你可以当作! NSString 【参考方案1】:试试这个……
if let username = prefs.valueForKey("USERNAME") as? String
self.usernameLabel.text = username
或者如果你想使用 NSString ..(只是一个选项)
if let username = prefs.valueForKey("USERNAME") as? NSString
self.usernameLabel.text = username
【讨论】:
【参考方案2】:将 NSString 更改为字符串,
self.usernameLabel.text = prefs.valueForKey("USERNAME") as? String
工作正常,希望对您有所帮助
【讨论】:
以上是关于斯威夫特 2:任何对象?不能转换为 NSString的主要内容,如果未能解决你的问题,请参考以下文章
如何将数组对象转换为 JSON 字符串。 IOS 8。斯威夫特 1.2
精灵包 |斯威夫特 3 | - 无法将 Void 类型的值(aka'()' 转换为预期的参数类型 'unsafeRawPointer'
将 Alamofire 完成处理程序转换为 Async/Await |斯威夫特 5.5,*