PromiseKit分段错误:11

时间:2016-05-12 05:37:14

标签: xcode swift promisekit

我正在努力获得与PromiseKit合作的基本承诺。但是下面的代码不会编译:

import Foundation
import PromiseKit

class MyClass {
    var myInt: Int?

    func sample() -> Promise<AnyObject> {
        return Promise { fulfill, reject in
            fulfill(1)
        }.then { data -> Int in
            return 3
        }
    }

    init() {
        sample().then { data -> Void in
            debugPrint("got data: \(data)")
        }
    }
}

这是我得到的错误:

command failed due to signal: segmentation fault: 11

这非常令人沮丧。有没有人遇到过这个?

1 个答案:

答案 0 :(得分:1)

这是因为Int不是AnyObject

func sample() -> Promise<AnyObject> {
    return Promise { fulfill, reject in
        fulfill(1)
    }.then { data -> Int in
        return 3
    }
}

这很可能在Swift 3中修复,但是其中任何一个都将修复编译:

func sample() -> Promise<Int> {
    return Promise { fulfill, reject in
        fulfill(1)
    }.then { data -> Int in
        return 3
    }
}

或者:

func sample() -> Promise<AnyObject> {
    return Promise { fulfill, reject in
        fulfill(1)
    }.then { data -> NSNumber in
        return 3
    }
}