2013-03-19 4 views
-1

J'essaie d'envoyer un UIColor à une sous-classe de UIView. J'obtiens une erreur de sélecteur non reconnue.Erreur de sélecteur non reconnue.

-[Subclass fillView]: unrecognized selector sent to instance 0x2006f880 

(sous-classe est une classe dans mon projet, mais je n'ai aucune idée de comment elle est liée à fillView.

Voici la ligne qui provoque le problème.

view.fillView.fillColor = fillColor; 

La sous-classe a une propriété qui est utilisée dans la méthode drawRect

@property (strong, nonatomic) UIColor *fillColor; 

CGContextSetFillColorWithColor(context, _fillColor.CGColor); 
+0

Qu'est-ce que fillView? Pourquoi essayez-vous de l'utiliser? – borrrden

+0

Utilisez-vous l'arc? Si c'est le cas, assurez-vous de garder une référence à la vue. J'ai déjà eu un problème semblable à cela, et faire de viewController un @property a fait l'affaire. – Jsdodgers

Répondre

0

Votre code

view.fillView.fillColor = fillColor; 

est équivalent à

[[view fillView] setFillColor:fillColor]; 

donc quelle que soit la classe « vue » est (il semble être de la classe « Sous-classe »), il ne répond pas à la méthode fillView. L'erreur n'a rien à voir avec fillColor. Votre code plante avant de passer à l'appel setFillColor.

+0

C'était correct. J'obtenais la vue d'un tableau, et essayais accidentellement d'assigner à un objet de la mauvaise classe qui se trouvait être dans le tableau. Merci! – Mrwolfy

0

Dans votre cas, view.fillView.fillColor ne fonctionnera pas.
Si vous voulez vraiment définir une couleur comme arrière-plan de votre point de vue, essayez cette

[self.view setBackgroundColor:[UIColor redColor]]; 

Espérons que cela aidera.

Questions connexes