Ошибка с 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;
}
все идет отлично. Зачем?:\