Ошибка с ACAccount и TWRequest

Это мой код

TWRequest *twRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@", kTwitterURLBase, kTwitterMethodHelpConfiguration]]
                                           parameters:nil
                                        requestMethod:TWRequestMethodGET];

[twRequest setAccount:[self twitterAccount]];

[twRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {

     // Handling

}];

Метод twitterAccount

- (ACAccount *)twitterAccount {

    NSString *identifier = [[Session getInstance] selectedAccountIdentifier];
    ACAccount *account = nil;

    if ([identifier length] > 0) {

        ACAccountStore *accountStore = [[ACAccountStore alloc] init];
        account = [accountStore accountWithIdentifier:identifier];
    }

    return account;
}

Как говорит отладчик, учетная запись возвращается правильно, но когда я печатаю ее в консоли, я ничего не получаю, пробел; но объект учетной записи имеет ссылку.

Сразу после того, как запрос начинает выполняться, я получаю ошибку EXC_BAD_ACCESS. В стеке написано, что ошибка возникает при отправке неверного сообщения [ACAccount accountType],

Очевидно, что это проблема с памятью, и я новичок в ARC, так что я думаю, что проблема будет там.

Любая помощь?

1 ответ

Решение

Я не знаю, какого черта я должен это сделать, но если я объявлю переменную экземпляра для сохранения ACAccountStore и поменяю метод таким образом

- (ACAccount *)twitterAccount {

    NSString *identifier = [[Session getInstance] selectedAccountIdentifier];
    ACAccount *account = nil;

    if ([identifier length] > 0) {

        if (accountStore_ == nil) {

            accountStore_ = [[ACAccountStore alloc] init];
        }

        account = [accountStore_ accountWithIdentifier:identifier];
    }

    return account;
}

все идет отлично. Зачем?:\

Другие вопросы по тегам