2010-01-25 4 views
2

Obtention d'un message d'erreur "Les fonctions imbriquées sont désactivées, utilisez" -fnested ", etc. dans XCode/ObjC.Utilisation de références imbriquées dans l'objectif C

Voici le code (balles est un NSMutableArray pointant sur un groupe d'UIViews).

CGPoint pos=[[self.balls objectAtIndex:pointidx] center]; 

Mais ce qui suit semble bien se compiler.

UIView *ref=[self.balls objectAtIndex:pointidx]; 
CGPoint pos=ref.center; 

Dois-je utiliser « -fnested-fonctions pour réactiver (et si oui, où dois-je mettre les « -fnested-fonctions »)? Ou devrais-je simplement mettre en place à l'étape supplémentaire de la création d'un UIView * pointeur en premier? té.

+1

Les messages d'erreur ne sont pas brillants pour objectif-c et xcode :) – willcodejavaforfood

Répondre

1

en général, lorsque vous voyez des avertissements fonctions imbriquées, ce que vous avez vraiment une erreur de syntaxe.

est pointidx un entier et balls un NSArray?, est-ce aussi vous avez une propriété pour les balles? Essayez simplement balls au lieu de self.balls

Editer: Puisque c'est une chose de temps de compilation, je pense peut-être qu'il n'aime pas passer center à NSObject. Qu'est-ce qui se passe si vous lancez l'objet:

CGPoint pos=[(UIView *)([self.balls objectAtIndex:pointidx]) center]; 

rêverie Irrelevant brouillées.

+0

Vous avez entièrement raison, je dois vérifier ma syntaxe avant de sauter pour poser des questions! Un point-virgule manquant sur une ligne précédente. merci ... – Nigel

+0

Encore pas un problème. Xcode a des façons très étranges de vous dire quand vous faites quelque chose de mal. Ça s'est beaucoup amélioré récemment, mais ça peut quand même être énigmatique. En outre, clang est maintenant intégré, donc si vous avez des problèmes avec les avertissements du compilateur, clang peut parfois être plus clair sur le problème. Utilisez Build> Build and Analyze pour voir le rapport de clang. Également utile pour détecter les fuites de mémoire et le code mort. –

Questions connexes