是否存在绑定样本,其中iOS将块传递给C#,稍后从c#调用?
这个场景的唯一引用是在blockcallback中。 http://docs.xamarin.com/guides/ios/advanced_topics/binding_objective-c/binding_types_reference_guide#BlockCallback
我们的问题是块被调用但它似乎已经丢失了上下文,即:应该有值的局部变量会使值丢失。
以下是伪代码示例,因为代码过于复杂,无法在此处发布:
目标-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);