4

iOS が後で C# から呼び出される C# にブロックを渡すバインディング サンプルはありますか?

そのシナリオへの唯一の参照は、ブロックコールバックにあります。 http://docs.xamarin.com/guides/ios/advanced_topics/binding_objective-c/binding_types_reference_guide#BlockCallback

私たちの問題は、ブロックが呼び出されるが、コンテキストが失われたように見えることです。つまり、値を持つはずのローカル変数の値が失われます。

コードが複雑すぎてここに投稿できないため、以下は疑似コードのサンプルです。

Objective-C

void somemethod () { 
  int x = 10;
  Myclass *myobj = [[Myclass alloc] init];
  [myCSharpbinding callsome:123 withBlock:^(int val) {
      myobj.prop1 = val; // fails because myobj is null by the time C# calls the block
      // x is also 0 when c# calls the block
  }];

C#

//ApiDefinition.cs

// method within myCSharpbinding class:
void callsome(int value, [BlockCallback] MyBlock block);


public delegate void MyBlock(int val);
4

0 に答える 0