PromiseKit 分段错误:11
Posted
技术标签:
【中文标题】PromiseKit 分段错误:11【英文标题】:PromiseKit segmentation fault: 11 【发布时间】:2016-05-12 05:37:13 【问题描述】:我正在尝试使用 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
这很令人沮丧。有人遇到过吗?
【问题讨论】:
错误是来自Swift编译器,还是运行时的程序? 每当我尝试构建 @kennytm 时,它都来自 swift 编译器 如果你在Xcode中进入Report navigator(按⌘8,或者点击左侧面板的????),你应该可以找到编译日志并找出它在哪一行导致编译器崩溃。 谢谢@kennytm。看来,如果我将这一行更改为:.then data -> Int in
到 .then data -> NSNumber in
那么它构建得很好
【参考方案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
【讨论】:
以上是关于PromiseKit 分段错误:11的主要内容,如果未能解决你的问题,请参考以下文章
Alamofire 和 PromiseKit 返回一个 Promise<[T]>
从 PromiseKit 中的完成处理程序返回 Promise