У меня есть класс Application Delegate с перечислением, которое выглядит следующим образом:
typedef enum {
Online = 3500,
DoNotDisturb = 9500,
Offline = 18500,
Away = 15500,
Busy = 6500,
BeRightBack = 12500
} status;
Кроме того, у меня есть свойство для установки значения из перечислителя в моем файле интерфейса:
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
status userStatus;
}
@property (nonatomic, setter=setStatus) status userStatus;
@end
Наконец, в моем файле реализации есть следующее сообщение:
@implementation Communicator2AppDelegate
- (void)setStatus:(status)_userStatus {
if ([NSThread isMainThread]) {
// some stuff happens here ...
} else {
[self performSelectorOnMainThread:@selector(setStatus:) withObject:_userStatus waitUntilDone:NO];
}
}
Моя проблема заключается в следующем: сообщение executeSelectorOnMainThread не работает, поскольку оно не принимает в качестве значения _userStatus. Я предполагаю, что сообщение предполагает, что это перечисление, а не реальная ценность. При компиляции я получаю следующее сообщение об ошибке: «Несовместимый тип для аргумента 2 executeSelectorOnMainThread: withObject: waitUntilDone.» »
Кто-нибудь знает, как заставить это работать?