2009-07-27 6 views
1

Je le code suivant:kMovieLoadStatePlayable undelcared (première utilisation dans cette fonction) erreur avec cadre QuickTime ou QTKit

(void)loadStateChanged:(NSNotification*)notification 
{ 
    if ([[movie attributeForKey:QTMovieLoadStateAttribute] longValue] >= kMovieLoadStatePlayable) 
    { 
     [[NSNotificationCenter defaultCenter] removeObserver:self]; 

     long movieScale = [[movie attributeForKey:QTMovieTimeScaleAttribute] longValue]; 

     [movie setCurrentTime:QTMakeTime(0, movieScale)]; 

     [movie play]; 
} 

et il jette cette erreur:

erreur: 'kMovieLoadStatePlayable' non déclaré (première utiliser dans cette fonction)

Je crois que kMovieLoadStatePlayable appartient à un framework QuickTime, et j'ai à la fois QTKit et le framework QuickTime dans mon programme, mais je n'arrive pas à comprendre pourquoi c'est une erreur ici. Je sais que c'est quelque chose à voir avec ces cadres.

+0

Je ne trouve pas kMovieLoadStatePlayable aussi, mais j'ai trouvé QTMovieLoadStatePlayable. J'espère que c'est ok. –

Répondre

2

Y at-il un # import dans le fichier source dans lequel vous utilisez ce symbole? Il suffit de faire glisser un cadre dans votre projet pour que ses en-têtes ne soient pas disponibles pour tous les fichiers source (ce qui ralentirait considérablement la compilation). Vous devez inclure explicitement l'en-tête du cadre pour chaque framework utilisé par chaque fichier source.

Si vous êtes assuré que vous utiliserez une structure dans chaque fichier source, ajoutez un #import à votre préfixe en-tête.

+0

Pour approfondir la réponse donnée par cdespinosa. Ce symbole est défini dans Movies.h dans QuickTime.framework. Pour l'importer, utilisez la ligne: #import Typiquement près du haut du fichier. –

Questions connexes