2009-07-21 17 views
2

Pour une raison quelconque, Xcode me dit qu'il ne trouve pas de symboles dès que j'utilise quelque chose comme kCAFillModeForwards. Il doit y avoir une bibliothèque ou une classe que je dois inclure ... mais laquelle? Le truc normal de Core Animation fonctionne bien comme [myView beginAnimations ...]. Quel est le truc pour faire fonctionner les trucs d'animation les plus sophistiqués?Pourquoi ne puis-je faire aucune animation CABasicAnimation ou Keyframe?

J'ai inclus dans le fichier .h:

#import <UIKit/UIKit.h> 
#import <QuartzCore/QuartzCore.h> 

@interface TestClass : UIView { 

} 
// ... 

Je lance ce code:

- (void)testAnimation { 
    CABasicAnimation *fadeInAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; 
    [fadeInAnimation setToValue:[NSNumber numberWithFloat:1.0]]; 
    fadeInAnimation.fillMode = kCAFillModeForwards; 
    fadeInAnimation.removedOnCompletion = NO; 
    // other stuff deleted to limit error possibilities...should at least compile 
} 

Cela se produit lorsque je construis (fait nettoyer beaucoup de fois), 2 erreurs:

cd "/Users/thanks/Desktop/Thanks/iPhone Development/TestApp" 
    setenv MACOSX_DEPLOYMENT_TARGET 10.5 
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.0 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.1.sdk "-L/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/Debug-iphonesimulator" "-F/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/Debug-iphonesimulator" -filelist "/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/TestApp.build/Debug-iphonesimulator/TestApp.build/Objects-normal/i386/TestApp.LinkFileList" -mmacosx-version-min=10.5 -framework Foundation -framework UIKit -framework CoreGraphics -o "/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/Debug-iphonesimulator/TestApp.app/TestApp" 
Undefined symbols: 
    ".objc_class_name_CABasicAnimation", referenced from: 
     [email protected][email protected][email protected] in TestClassTestClass.o 
    "_kCAFillModeForwards", referenced from: 
     _kCAFillModeForwards$non_lazy_ptr in TestClass.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 
     ".objc_class_name_CABasicAnimation", referenced from: 
      [email protected][email protected][email protected] in TestClass.o 
     "_kCAFillModeForwards", referenced from: 
      _kCAFillModeForwards$non_lazy_ptr in TestClass.o 
    ld: symbol(s) not found 
    collect2: ld returned 1 exit status 

Il dit Undefined symbols:

Dois-je inclure un cadre?

J'ai déjà inclus:

CoreGraphics.framework Foundation.framework UIKit.framework

Lorsque je supprime tout le code, mais QuartzCore import/QuartzCore.h, je ne reçois aucune Erreur. Donc, je parie que l'importation fonctionne, mais pas sûr.

SOLVED

J'ai manqué d'inclure le cadre QuartzCore !!

+0

Peut-être au lieu de poser cette question, vous pourriez avoir gardé les réponses dans les commentaires ici: http://stackoverflow.com/questions/1142727/how-can-i-animate-the-movement-of-a- view-or-image-along-a-courbe-chemin/1143095 # 1143095 –

+0

Si vous avez écrit ceci pour avoir une question claire avec une réponse claire, laissez-moi vous dire: Votre plan a échoué! –

+0

Vous devriez attribuer la réponse à Jules. –

Répondre

7

Importez-vous du quartz dans votre en-tête?

#import <QuartzCore/QuartzCore.h> 

QuartzCore inclut les en-têtes de CAAnimation

+0

Oui, je l'ai inclus. Ça n'aide pas. Je vais mettre à jour la question avec plus de détails. – Thanks

+0

On dirait que c'était le problème en fonction de votre commentaire 'RESOLU' dans la requête .Non? Si oui, vous devriez attribuer la question à Jason. –

7

Probablement vous n'avez pas inclus le cadre Quartz dans votre projet.

Pour ce faire, choisissez votre cible d'application, allez dans l'onglet Phases de compilation puis sous Lien avec les bibliothèques binaires ajouter le QuartzCore.framework.