J'essaie d'intégrer GData/YouTubeAPI dans mon projet mais je suis un peu coincé. J'ai utilisé le code qui a été donné dans ce post:@selector() ne fonctionne pas? API youtube Problèmes GData
Any examples/tutorials on using Google GData API - Youtube on iphone?
Mon problème est que la fonction « demande: finishedWithFeed: erreur: » est pas appelé lorsque le service GData est fait saisir des données au large des interwebs. Mon programme compile et s'exécute - et aucune erreur d'exécution ne se présente. J'ai également vérifié et feedURL renvoie une URL valide. J'ai débogué ceci et 'service' réussit à renvoyer une valeur.
GDataServiceGoogleYouTube *service = [self youTubeService];
// feed id for user uploads
NSString *uploadsID = kGDataYouTubeUserFeedIDUploads;
// construct the feed url
NSURL *feedURL = [GDataServiceGoogleYouTube youTubeURLForUserID:USER_NAME userFeedID:uploadsID];
// make API call
[service fetchFeedWithURL:feedURL delegate:self didFinishSelector:@selector(request:finishedWithFeed:error:)];
C'est l'en-tête de la fonction que je suis en train d'obtenir un service d'appeler quand son fait, il est situé dans le même objet que l'autre code que j'ai posté
- (void)request:(GDataServiceTicket *)ticket finishedWithFeed:(GDataFeedBase *)aFeed error:(NSError *)error;
SOLUTION - -
assurez-vous que son fonctionnement sur thread principal -
-(id)initWithVideosArrayURLString:(NSString*)url {
if (self = [super init]) {
NSLog(@"loading");
[self performSelectorOnMainThread:@selector(initMainThreadWithURLString:) withObject:url waitUntilDone:NO];
}
return self;
}
-(void)initMainThreadWithURLString:(NSString*)url {
GDataServiceGoogleYouTube *service = [self youTubeService];
NSString *uploadsID = kGDataYouTubeUserFeedIDUploads;
NSURL *feedURL = [GDataServiceGoogleYouTube youTubeURLForUserID:@"annoyingorange" userFeedID:uploadsID];
[service fetchFeedWithURL:feedURL delegate:self didFinishSelector:@selector(serviceTicket:finishedWithFeed:error:)];
NSLog(@"sent");
}
- (void)serviceTicket:(GDataServiceTicket *)ticket finishedWithFeed:(GDataFeedBase *)aFeed error:(NSError *)error {
self.feed = (GDataFeedYouTubeVideo *)aFeed;
NSLog(@"success.");
}