Ios 打印徽章时去掉可选选项
我正在获取Ios 打印徽章时去掉可选选项,ios,swift3,Ios,Swift3,我正在获取数组的计数并将其作为徽章值,但其显示在徽章中是可选的(例如,5)。如何解决此问题 let vals2: String? = String(describing: store?.data?.newsArticles?.count) print(vals2!) self.newsTabBarItem.badgeValue = vals2! self.menuList = (store?.data?.newsArticles)! 是可选的,然后 store?.data?.newsArtic
数组的计数
并将其作为徽章
值,但其显示在徽章中是可选的(例如,5)。如何解决此问题
let vals2: String? = String(describing: store?.data?.newsArticles?.count)
print(vals2!)
self.newsTabBarItem.badgeValue = vals2!
self.menuList = (store?.data?.newsArticles)!
是可选的,然后
store?.data?.newsArticles?.count
将等于“可选(3)”
,其类型将为字符串
而不是字符串?
。您需要展开计数
,而不是VAL2
:
String(describing: store?.data?.newsArticles?.count)
如果您的代码需要新闻文章
,则更好:
let newsArticles = store?.data?.newsArticles // newsArticles is an Optional
let vals2: String = String(describing: newsArticles!.count)
print(vals2)
self.newsTabBarItem.badgeValue = vals2
self.menuList = newsArticles!
您将在该调用中获得您的
可选(n)
:
if let newsArticles = store?.data?.newsArticles { // newsArticles won't be an Optional
let vals2 = String(describing: newsArticles.count)
print(vals2)
self.newsTabBarItem.badgeValue = vals2
self.menuList = newsArticles
}
因为您要的是可选的说明
你可以试试这个:
String(describing: store?.data?.newsArticles?.count)
我在map上遇到一个错误,int类型的值没有成员映射。你能截取有错误的代码(与map一起)的屏幕截图吗?并检查计数后是否没有?
:.count.map
,而不是.count?.map
。
let vals2: String? = store?.data?.newsArticles?.count.map { count in
String(describing: count)
}
self.newsTabBarItem.badgeValue = vals2 // don't use `!` here