iOS - alloc调用两次,结果不同

时间:2016-12-27 21:17:16

标签: ios objective-c appcelerator allocation alloc

首先,我正在使用本机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之间表面上没有区别。然而,一次发射多次,另一次只发射一次。

我做错了什么?我的智慧结束了。谢谢你们。

0 个答案:

没有答案