我从JSON访问数据并将其存储在字典1中,并将此字典1传递给另一个视图控制器的字典2。视图控制器包含所有细节,主要有12个标签。我已经成功地访问了字符串,但是我无法获得数字值。请看一下密码。
DetailsViewController
var dict2 = [String : AnyObject]()
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.lblTopName.text = self.dict2["toponymName"] as? String
self.lblFcodeName.text = self.dict2["fcodeName"] as? String
self.lblName.text = self.dict2["name"] as? String
self.lblCountryCode.text = self.dict2["countrycode"] as? String
self.lblFCL.text = self.dict2["fcl"] as? String
self.lblFclName.text = self.dict2["fclName"] as? String
self.lblWikipedia.text = self.dict2["wikipedia"] as? String
self.lblFcode.text = self.dict2["fcode"] as? String
self.lblLongitude.text = self.dict2["lng"] as? String请注意。最后一行代码,经度是一个数字值。如果我将String替换为NSNumber,则会出现以下错误:
不能将类型NSNumber的值赋值给类型字符串
发布于 2015-12-29 06:45:09
应该尽可能避免强制转换,因为它可能导致意外的崩溃。如果由于某种原因,字典最终没有lng键,那么lng将使应用程序崩溃。
你的最后一行应该是:
self.lblLongitude.text = self.dict2["lng"]?.description这保证不会崩溃,因为description存在于任何对象上,如果字典中不包含"lng“键,您将得到一个简单的零分配给text。
https://stackoverflow.com/questions/34505492
复制相似问题