2016-06-20 10 views
0

次のコードでは、値が返されないクロージャで使用される単一のパラメータを渡すクロージャを作成しようとしています。Swift Closure - パラメータを渡して戻り値を持たない方法

は、コードを介して、私のアプリ内の別のスウィフトのクラスから呼び出されたrunit()

型の値「(CheckerOperation) - >()」を呼び出すことはできませんライン で引数 リスト「(CheckerOperation)」とし「 runTimerProcess(runitProcess(customOperation))

クロージャが値を返さないときにどのように呼び出すのか分かりません。

CheckerOperationちょうどカスタムNSOperationクラスである)

class Checker { 
    var queue = NSOperationQueue() 
    let customOperation : CheckerOperation = CheckerOperation() 

    var runitProcess: (CheckerOperation) ->() = {op in 
     NSOperationQueue.mainQueue().addOperationWithBlock({ 
     let operationQueue = NSOperationQueue.mainQueue() 
     operationQueue.addOperation(op) 
    }) 
    } 

    func runTimerProcess(closureblock: ClosureBlock){ 
    let queue = dispatch_queue_create(“myqueue”, DISPATCH_QUEUE_SERIAL) 
    dispatch_async(queue,closureblock) 
    } 

    func runit(){ 
    runTimerProcess(runitProcess(customOperation)) 
    } 
} 
+0

こんにちは、あなたを助けるために、あなたが '' CheckerOperation ClosureBlock'andのためのあなたのコードを投稿することができますか? –

答えて

0

あなたは2つのコア構文を混合している:(1)計算特性、及び(2)関数/メソッド

計算されたプロパティは引数を受け入れることができません。あなたの場合は、opの型を持つ関数を単に定義するだけでいいです。タイプはCheckerOperationです。計算されたプロパティが実際に意図されている値であるrunitProcessの値を返すか、チェックする必要がないようだから、これを言う。

使用この:

func runitProcess(op: CheckerOperation) { 
    NSOperationQueue.mainQueue().addOperationWithBlock({ 
     let operationQueue = NSOperationQueue.mainQueue() 
     operationQueue.addOperation(op) 
} 
関連する問題