【问题标题】:In Appcelerator module, ENSURE_UI_THREAD crashes on device在 Appcelerator 模块中,ENSURE_UI_THREAD 在设备上崩溃
【发布时间】:2012-04-23 07:44:26
【问题描述】:

我的代码无法在设备上运行,谁能帮忙..?

- (id) TweetPost : (id) args {
    NSArray *arr = args;
    _post = [args objectAtIndex: 0];
    NSLog(_post, nil);
    [_post retain];
    ENSURE_UI_THREAD(Tweet, args);
}

- (id) Tweet : (id) args {
        NSLog(@"Routine Twitter Module", nil)
        if (![_engine isAuthorized]) {
            UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self];
            if (controller) {
                [[TiApp app] showModalController:controller animated: YES];
            }
        } else {
            [_engine sendUpdate: _post];
        }
}

在模拟器上执行此代码时,它可以正常工作,但在设备上,应用程序在NSLog(_post, nil); 之后立即在TweetPost 方法中崩溃。我认为这是由于ENSURE_UI_THREAD(Tweet, args);。谁能帮帮我..?

【问题讨论】:

    标签: ios appcelerator-mobile titanium-modules


    【解决方案1】:

    我已将上述两个函数替换为:

     - (void) TweetPost : (id) args {
        NSArray *arr = args;
        _post = [arr objectAtIndex: 0];
        [_post retain];
        NSLog(_post, nil);
    
        [self Tweet: args];
    }
    
    - (void) Tweet : (id) args {
        NSLog(@"Routine Twitter Module", nil);
        ENSURE_UI_THREAD(Tweet, args);
        if (![_engine isAuthorized]) {
            UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self];
            if (controller) {
                [[TiApp app] showModalController:controller animated: YES];
            }
        } else {
            [_engine sendUpdate: _post];
        }
    }
    

    这工作正常。我不知道是什么错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      • 2012-09-23
      • 1970-01-01
      • 2012-07-09
      • 2013-10-08
      相关资源
      最近更新 更多