无法转换“ Int64”类型的值?到预期的参数类型“ Int”

AVE*_*imi 5 int casting int64 swift

当我尝试将job?.id(一个Int64)作为Int参数传递时(虽然我知道它不是那么大),但迅速的编译器提示此错误,我尝试了几种方法进行转换,但未成功:

Cannot convert value of type 'Int64?' to expected argument type 'Int'
Run Code Online (Sandbox Code Playgroud)

我的代码:

Job.updateJobStatus(token: tok, jobId: job?.id, status:JobSatus.canceled) { (result, error) in
        if result != nil
        {

        }
        else if error != nil
        {

        }
    }
Run Code Online (Sandbox Code Playgroud)

ali*_*ner 5

您可以轻松地像

let int64Value: Int64 = 123456
let intValue = NSNumber(value: int64Value).intValue
Run Code Online (Sandbox Code Playgroud)


Oxt*_*hor 3

这与/sf/answers/2295555951/有关

Swift 3 引入了可失败的初始化器来安全地将一种整数类型转换为另一种整数类型。通过使用 init?(确切地说:),你可以传递一种类型来初始化另一种类型,如果初始化失败,它会返回 nil。返回的值是一个可选值,必须以通常的方式解包。

Int(exactly: yourInt64)
Run Code Online (Sandbox Code Playgroud)