今日、私はC++からObjective-cメソッドへのコールバック・パスに取り組んでいます。
最後に、私はそれを試しましたが、いくつかのコードが私を混乱させます。コールバックを実装するためのObjective-C、人々通常の使用ブロックで
は、ブロックの宣言は次のようになります。'void(*)(int)'は 'void(^)(int)'と同じですか?
戻り値の(^ blockNameを)(たparameterTypes)
私はまた、C++のコールバックについて学びました、このように定義された同じタイプのコールバック:
私に警告私はObjective-CのにC++からのコールバックを渡さ戻り値の(* FUNCNAME)(たparameterTypes)
、コンパイラは:
"Cannot initialize a parameter of type 'void (^)(int)' with an rvalue of type 'void (*)(int)"
最後に、私は*
に^
を変更し、それが動作します。私は知っていると思う、^
と*
の違いは何ですか?それは同じ動作ですか?
C++では '^が'それがであるのと同様にビットごとのXOR – DimChtz
@DimChtzです目標-C。状況によって違いが生じます。 – trojanfoe