首先,我正在使用本机iOS代码桥接Appcelerator,但我无法访问Hyperloop。本机iOS代码中存在以下功能。它们被编译为iOS模块,并直接从Appcelerator代码调用:
MyAppModule.m
-(void)thisA
{
NSLog(@"***** Started A");
self.MyBridge = [MyAppProxy alloc];
[self.MyBridge callThis];
NSLog(@"***** Ended A");
}
-(void)thisB
{
NSLog(@"***** Started B");
self.MyBridge = [MyAppProxy alloc];
[self.MyBridge callThisOtherThing];
NSLog(@"***** Ended B");
}
-(void)thisC
{
NSLog(@"***** Started C");
self.MyBridge = [MyAppProxy alloc];
[self.MyBridge callThisOtherThing]; // Does the same thing B does
NSLog(@"***** Ended C");
}
MyAppProxy.m
-(void)callThis
{
thisVar = 1;
NSLog(@"***** thisVar set to 1");
}
-(void)callThisOtherThing
{
thisVar = 2;
NSLog(@"***** thisVar set to 2");
}
当我最初打电话给 thisA 时,它可以正常工作。我看到所有3个NSLog并且出现了预期的结果。当我最初打电话给 thisB 时,它可以正常工作。我看到所有3个NSLog并且出现了预期的结果。
5分钟后再次拨打 thisA 时,它仍然有效。我看到所有3个NSLog并且出现了预期的结果。当我在5分钟后再次呼叫 thisB 时,它根本不会执行。我甚至没有看到第一个NSLog(已启动B)。如果我之后再调用 thisC ,它就可以了。啊。
thisA和thisB之间表面上没有区别。然而,一次发射多次,另一次只发射一次。
我做错了什么?我的智慧结束了。谢谢你们。