2016-05-12 4 views
0

Я пытаюсь получить основное обещание работать с PromiseKit. Однако следующий код обыкновение компиляции:Ошибка сегментации PromiseKit: 11

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

Является ли ошибка, исходящая от компилятора Swift или программы при ее запуске? – kennytm

+0

Его приход от быстрого компилятора всякий раз, когда я пытаюсь создать @kennytm – bunana

+0

Если вы перейдете к навигатору отчетов в Xcode (нажмите ⌘8 или щелкните на левой панели), вы сможете найти журнал компиляции и узнать в какой строке это приводит к сбою компилятора. – kennytm

ответ

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 
    } 
} 
Смежные вопросы