ios - 如何在 Swift 3 中解包一个模态类对象

标签 ios swift3 option-type unwrap forced-unwrapping

模型类:

class CountryModel: NSObject {

    var name:NSString!

    var countryId:NSString!

    init(name: NSString, countryId: NSString) {
        self.name = name
        self.countryId = countryId
    }

}

View Controller :

var nameArr = [CountryModel]() // Model Class object

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        var cell = UITableViewCell()

        cell = tableView.dequeueReusableCell(withIdentifier: "cell")!

        let arr = nameArr[indexPath.row] // How to do if let here

        let str:String? = "\(arr.countryId) \(arr.name)"

        if let sstr = str{
            cell.textLabel?.text = sstr
        }

        return cell

    }

如果我尝试解包 nameArr[indexPath.row] 给出错误 条件绑定(bind)的初始化程序必须有可选类型,不是“国家模式”

它工作正常我没有将 arr.countryId 与 arr.name 连接

最佳答案

这很好用

        var nameArr = [CountryModal]()
        nameArr.append(CountryModal.init(name: "harshal", countryId: "india"))
        nameArr.append(CountryModal.init(name: "james", countryId: "australia"))

        let arr = nameArr[0]
        let str:String? = "\(arr.countryId!) \(arr.name!)" 
        if let sstr = str{
           print(sstr)
        }

        let arr2 = nameArr[1]
        let str2:String? = "\(arr2.countryId!) \(arr2.name!)"

        if let sstr2 = str2{
            print(sstr2)
        }

关于ios - 如何在 Swift 3 中解包一个模态类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43534587/

相关文章:

ios - sqlite3 : Non-aligned pointer being freed on iOS

Swift nil 有数值吗?

ios - UITextView 自定义拼写和自动更正

ios - 如何在不调整大小的情况下获取图像?

ios - SwiftyJson Swift 3 无法访问 JSON 中的字符串

swift - 手势识别器不工作。执行下面元素的操作 - SWIFT

ios - swift 3 : Cant programmatically create label on Collectionview header properly?

java - 如何使用可选项实现这个嵌套流程?

ios - Swift 在关闭时将值解包为 nil 但在代码的其他地方成功解包?

ios - 将数据从 Viewcontroller 传输到 UIview