ios – 如何将swift中的任何转换为​​Int?

在提出这个问题之前,我搜索了Stackoverflow的相关问题,并发现了类似的一个How to convert Any to Int in Swift.

我的要求不是那么少:

let tResult = result as? [String:AnyObject]
let stateCode = tResult?["result"] as? Int

我的需要是,如果tResult?[“result”]是一个String类,我希望它也转换为Int,而不是nil.

在Objective-C中,我写了一个方法获取转换后的Int:

+ (NSInteger)getIntegerFromIdValue:(id)value
{
    Nsstring *strValue;
    NSInteger ret = 0;
    if(value != nil){
        strValue = [Nsstring stringWithFormat:@"%@",value];
        if(![strValue isEqualToString:@""] && ![strValue isEqualToString:@"null"]){
            ret = [strValue intValue];
        }
    }
    return ret;
}

是否可以使用Swift3编写类似的类方法

解决方法

不详详细答案:
let key = "result"
let stateCode = tResult?[key] as? Int ?? Int(tResult?[key] as? String ?? "")

结果:

let tResult: [String: Any]? = ["result": 123] // stateCode: 123
let tResult: [String: Any]? = ["result": "123"] // stateCode: 123
let tResult: [String: Any]? = ["result": "abc"] // stateCode: nil

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...