J'ai une classe de délégué d'application avec une énumération qui ressemble à ceci:Objective-C, recenseurs et custom setters - Comment le faire fonctionner?
typedef enum {
Online = 3500,
DoNotDisturb = 9500,
Offline = 18500,
Away = 15500,
Busy = 6500,
BeRightBack = 12500
} status;
De plus, j'ai une propriété pour définir une valeur du recenseur dans mon fichier d'interface:
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
status userStatus;
}
@property (nonatomic, setter=setStatus) status userStatus;
@end
Enfin je le message suivant dans mon dossier de mise en œuvre:
@implementation Communicator2AppDelegate
- (void)setStatus:(status)_userStatus {
if ([NSThread isMainThread]) {
// some stuff happens here ...
} else {
[self performSelectorOnMainThread:@selector(setStatus:) withObject:_userStatus waitUntilDone:NO];
}
}
ma question est la suivante: le message performSelectorOnMainThread ISN ne fonctionne pas car il n'accepte pas '_userStatus' comme valeur. Je suppose que le message suppose que c'est une énumération, pas une valeur réelle. Je reçois le message d'erreur suivant lors de la compilation: "Type incompatible pour l'argument 2 de 'performSelectorOnMainThread: withObject: waitUntilDone.'"
Quelqu'un at-il une idée sur la façon de faire ce travail?
Merci accouplent, il est en fait tellement logique que je me demande pourquoi je ne suis pas venu avec moi-même - d'autant plus que la message a en fait un paramètre 'withObject:' :) –