2010-01-13 6 views
0

Je ne parviens pas à créer un programme très simple lors de la création du simulateur iPhone. Il compile bien pour l'appareil cependant!Impossible de créer une application pour le simulateur iPhone

Un exemple de code que le compilateur n'aime pas:

@protocol Invokable 
- (id) invoke: (id)arg with:(id)data; 
@end 

@interface Worker : NSThread 
{ 
    NSAutoreleasePool* memoryPool; 
} 

- (void) invoke:(id)target selector:(SEL<Invokable>)selector arg:(id)arg data:(id)data; 

//........  

@end 

Le problème est avec l'utilisation de « SEL » - le compilateur se plaint « de type qualifié n'est pas un objet valide » sur chaque utilisation .

Je cours xcode 3.2.1 sur Snow Leopard. Je suis vraiment confus à ce sujet, car je n'ai absolument pas modifié mes configurations de construction.

Répondre

2

La réponse ici n'est pas évidente, mais le compilateur est correct. Le type SEL est en fait juste un typedef'd char*, et pas un objet Objective-C. De ce fait, et du fait que les protocoles ne s'appliquent qu'aux objets Objective-C, vous ne pouvez pas spécifier un protocole sur un type SEL.

+0

Cela a du sens. Je suis nouveau à Objective-C, donc des choses comme ça continuent de me faire trébucher. Pourquoi, cependant, compilera-t-il bien quand je construis pour l'appareil? – MikeQ

+0

Incertain: peut-être un bug du compilateur ou quelque chose. –

Questions connexes