Проблема с EXC_BAD_REQUEST в TWRequest
У меня есть следующий код, и он всегда дает мне сбой при выполнении запроса, любая идея?
NSString *responseBody = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"Response body is %@", responseBody);
NSDictionary *accessTokenRequestParams = [[NSMutableDictionary alloc] init];
[accessTokenRequestParams setValue:CONSUMER_KEY forKey:@"x_reverse_auth_target"];
[accessTokenRequestParams setValue:responseBody forKey:@"x_reverse_auth_parameters"];
NSURL *url2 = [NSURL URLWithString:@"https://api.twitter.com/oauth/access_token"];
TWRequest * accessTokenRequest = [[TWRequest alloc] initWithURL:url2 parameters:accessTokenRequestParams requestMethod:TWRequestMethodPOST];
if (selectionIndex != -1)
[accessTokenRequest setAccount:[self.twitterACAccounts objectAtIndex:selectionIndex]];
// execute the request
[accessTokenRequest performRequestWithHandler:
^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *responseStr =
[[NSString alloc] initWithData:responseData
encoding:NSUTF8StringEncoding];
NSLog(@"The user's info for your server:\n%@", responseStr);
}];
ОБНОВЛЕНИЕ: включение NSZombieEnabled дает мне
*** -[ACAccountStore typeForAccount:]: message sent to deallocated instance 0x7199c70
это не где найти
2 ответа
Ваша ошибка выглядит совершенно иначе, чем ваш вопрос. У вас есть ошибка в классе ACAccountStore. Проверьте свой счет хранения при доступе, управлении и хранении учетных записей (ACAccountStore). Я думаю, что вы сначала освобождаете память, и вы используете кое-где.
Где-то вы вызываете ACAccountStore typeForAccount. Но ACAccountStore ушел. Глядя на документы AcAccount, специальных инициализаторов нет, поэтому в вашем коде есть что-то вроде:
static ACAccountStore* accountStore = [[[ACAccountStore alloc] init] autorelease];
затем при завершении запроса объект был очищен ОС, но ваш accountStore по-прежнему указывает на старый, теперь висящий указатель. Указатель может быть "статическим", "глобальным" или членом какого-либо другого статического или глобального объекта.
Ищите ACAccountStore в своем коде.