首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从字典中提取数字值

如何从字典中提取数字值
EN

Stack Overflow用户
提问于 2015-12-29 06:15:34
回答 4查看 84关注 0票数 0

我从JSON访问数据并将其存储在字典1中,并将此字典1传递给另一个视图控制器的字典2。视图控制器包含所有细节,主要有12个标签。我已经成功地访问了字符串,但是我无法获得数字值。请看一下密码。

DetailsViewController

代码语言:javascript
复制
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的值赋值给类型字符串

EN

Stack Overflow用户

发布于 2015-12-29 06:45:09

应该尽可能避免强制转换,因为它可能导致意外的崩溃。如果由于某种原因,字典最终没有lng键,那么lng将使应用程序崩溃。

你的最后一行应该是:

代码语言:javascript
复制
self.lblLongitude.text = self.dict2["lng"]?.description

这保证不会崩溃,因为description存在于任何对象上,如果字典中不包含"lng“键,您将得到一个简单的零分配给text

票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34505492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档