Последние пару дней я пытался заставить OAuth for Twitter работать над моим приложением для iPhone, и я не могу понять, почему я получаю эту ошибку. Я изменил способ, которым я подходил к этому некоторое время теперь, но все еще ничего. Поэтому я обращаюсь к ТАК, чтобы, надеюсь, понять это.
Учебное пособие связано здесь . Загрузка и запуск приложения работает ОТЛИЧНО. Это не работает для меня.
Вот ошибка, которую я получаю -
2010-07-25 20:04:52.224 AppTest[4620:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[OAToken setVerifier:]: unrecognized selector sent to instance 0x6c2acc0'
Кто-нибудь может сказать мне, что я делаю не так? Я использую почти тот же код.
РЕДАКТИРОВАТЬ: Вот код, где я использую setVerifier:
- (IBAction)finishSetup:(id)sender {
NSString *thePin = [[NSString alloc] initWithString:pinText.text];
NSLog(@"%@", thePin);
if([thePin length] == 7 && [[NSScanner scannerWithString:thePin] scanInt:NULL]) {
loadingView.hidden = NO;
[pinText resignFirstResponder];
OAConsumer *consumer = [[OAConsumer alloc] initWithKey:consumer_key secret:consumer_secret];
OADataFetcher *fetcher = [[OADataFetcher alloc] init];
NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/oauth/access_token"];
[accessToken setVerifier:pinText.text];
NSLog(@"Using PIN %@", accessToken.verifier);
OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url consumer:consumer token:accessToken realm:nil signatureProvider:nil];
[request setHTTPMethod:@"POST"];
NSLog(@"Getting access token...");
[fetcher fetchDataWithRequest:request delegate:self didFinishSelector:@selector(accessTokenTicket:didFinishWithData:) didFailSelector:@selector(accessTokenTicket:didFailWithError:)];
} else {
loadingView.hidden = YES;
error_alert = [[UIAlertView alloc] initWithTitle:@"TestApp" message:@"The PIN you have entered is invalid. Please try again." delegate:self cancelButtonTitle:@"Cancel Login" otherButtonTitles:@"Try again", nil];
[error_alert show];
[error_alert release];
}
[thePin release];
}