2017-03-06 11 views
0

私はあなたのために小さな探求を1つ持っています。 関数を含むselectorをparamとして実行したい。しかし、常にランタイムエラーが発生します。機能を持つセレクターをパラメーターとして実行できません

このメソッドは、iAdフレームワークのものです。

funcAsVarが変数としての機能である ​​

:そして、これは私がやろうとしてmのものです。 ヘルプは、みんな

ランタイムエラーがでてください。libswiftCore.dylib-[_SwiftValue dealloc]:

+0

ランタイムエラーとはなんですか? – NobodyNada

+0

スウィフト関数がObjective Cブロックに自動的にブリッジされるとは思いません。あなたは機能を呼び出すSwiftブロックを試しましたか? –

+1

実際には、 'perform'メソッドに渡すパラメータで' @convention(block) 'を使うことができます。 –

答えて

1

あなたはperformメソッドに渡すパラメータに@convention(block)を追加することができます。このように:

let sel = Selector("requestAttributionDetailsWithBlock:") 
if obj.responds(to: sel) { 
    obj.perform(sel, with: @convention(block) funcAsVar) 
} 
関連する問題