小编Der*_*rek的帖子

swift可选链接与演员表

下面的代码突出了我将可选链接和强制转换与Apple的快速语言相结合的问题

import Foundation
import CoreData

class MyExample {

    var detailItem: NSManagedObject?

    func example() {
        //In the actual implementation it is assigned to a UITableViewCell textLabel.text with the same result.
        let name: String = self.detailItem?.valueForKey("name") as String
    }
}
Run Code Online (Sandbox Code Playgroud)

以上结果如下:

'AnyObject'不能转换为'String'

我能够通过使类变量成为隐式解包的可选项来完成此操作,如下所示:

class MyExample2 {

    var detailItem: NSManagedObject!

    func example() {
        let name: String = self.detailItem.valueForKey("name") as String
    }
}
Run Code Online (Sandbox Code Playgroud)

这可行,但现在这个变量并不能反映我的真实世界需要它是可选的

下一个示例也适用于detailItem作为可选:

class MyExample3 {

    var detailItem: NSManagedObject?

    func example() {
        let name: String = self.detailItem?.valueForKey("name").description as String
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的问题是我不得不使用描述.使用此功能的输出向用户显示通常不是一个好主意(根据Apple,只是常识) …

ios swift

5
推荐指数
1
解决办法
2904
查看次数

标签 统计

ios ×1

swift ×1