4

Swift 2.2 几乎破坏了我所有的代码。即使是这个简单的分配给 label 的字符串也不再起作用:

cell.categoryName.text = peopleArray![indexPath.row]["Name"] as? String

错误显示“从'字符串向下转换?!' to 'String' 只解开可选项,你的意思是使用 '!!' 吗?

我现在要做什么改变。

编辑

更多问题:

if (dict["data"]!["DataDetails"] as! NSArray).count == 0 {
}

因此,我遇到了分段错误,错误显示如下:警告:从'String?!' 到不相关的类型 'NSArray' 总是失败

更新:

我在我的类中使用 NSDictionaries、NSArrays 似乎会导致问题。将所有文字从 Obj-C 更改为 swift 使代码正常工作。所以,我也会推荐其他开发人员更喜欢 swift 字面量。

4

1 回答 1

0

使用 swift 类型和 Objective-c NS... 类型时似乎有一些细微的差别

例如

let dic:NSDictionary? = ["a":"a"]

let str:NSString? = dic!["a"] as? NSString

let dic2:Dictionary? = ["b":"b"]

let str2:String? = dic2!["b"] //dont need to do any casting, already optional

print(str)
print(str2)

印刷

Optional(a)
Optional("b")

因此,根据您的数组/字典的定义方式,您可能需要不同的转换/展开

于 2016-03-23T07:25:47.223 回答