我正在努力获得与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
这非常令人沮丧。有没有人遇到过这个?
答案 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
}
}