0

我正在尝试获得使用 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

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

4

1 回答 1

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
    }
}
于 2016-08-04T18:54:20.713 回答