ios - 获取字符串显示的可选

标签 ios swift string

对于 Apple Watch 扩展,我展示了一个 AlertController,并且我得到了类似“Preset Optional(2)”而不是“Preset 2”的显示 - 下面是我的代码。我如何摆脱 Optional(没想到 Strings 有它们)

if let s = info["description"]
{
    let action = WKAlertAction(title: "OK", style: WKAlertActionStyle.Default, handler: { () -> Void in
         //
    })

    //let arr = s.componentsSeparatedByString("_")
    let arr = s.characters.split("_", maxSplit: Int.max, allowEmptySlices: false).map(String.init)
    self.presentAlertControllerWithTitle("Preset \(arr[0])", message: "\n\(arr[1])", preferredStyle: WKAlertControllerStyle.Alert, actions: [action])
}

以下是信息["description"] 的派生方式:

func session(session: WCSession, didReceiveMessage message: [String : AnyObject])
{
    if let info = message as? Dictionary<String,String>{            
        if let s = info["description"]
        {
            ...

最佳答案

展开数组的内容或使用 nil 合并运算符:

if let str = arr[0] as? String {
    let title = "Preset \(str)"
}

"Preset \(arr[0]) ?? \(someDefaultValue)"

如果 s 是一个 String? 你想先打开它:

if let s = info["description"] as? String {
    // ...
}

关于ios - 获取字符串显示的可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38482317/

相关文章:

ios - 如何在 Sprite Kit 中设置要平铺的纹理

arrays - 将元组附加到元组数组?

string - BITS 数据类型的十六进制字符串表示是什么?

python - 从 pandas 列的字符串列表中删除数字

swift - 如何在 UITableView 中制作自动高度标题?

c - 如何创建仅指向字符串第一个字母的指针

ios - 如何使用 Swift 制作 pod

iphone - NSScanner 适用于 WiFi 但不适用于 3G

ios - 如何获取 MPMoviePlayer 的当前缓冲区长度

swift - FCM iOS 推送通知收不到任何通知