"может не отвечать на 'initWithStyle:'" предупреждение в Xcode 4.2 - PullRequest
1 голос
/ 20 октября 2011

Я давно пользуюсь CPLockController Классно.Но после обновления до Xcode 4.2 я получаю следующее предупреждение:

'CPLockController' may not respond to 'initWithStyle:'

, где эта строка находится в коде:

CPLockController *lockController = [[CPLockController alloc]initWithStyle:(UITableViewStyle)CPLockControllerTypeAuth];

Реализация в файле CPLockController.m:

- (id)initWithStyle:(CPLockControllerStyle)theStyle {
    if(self == [super init]){
        self.style = theStyle;
        self.retry = NO;
        self.tempString = [NSMutableString string];
        self.hideCode = YES;
    }

    return self;
}

и определение типа CPLockControllerStyle:

typedef enum {
CPLockControllerTypeAuth,
CPLockControllerTypeSet
} CPLockControllerStyle;

Я даже создал проблему в github, но до сих пор не получил ответа!

Пожалуйста, руководство ...спасибо!

1 Ответ

3 голосов
/ 20 октября 2011

Это потому, что разработчик не объявил -initWithStyle: в объявлении класса. Если вы проверяете CPLockController.h , -initWithStyle: там нет.

Я не уверен, почему разработчик этого не сделал (возможно, он забыл об этом, в этом случае вам следует сообщить об ошибке), но вы можете легко добавить объявление в CPLockController.h следующим образом:

@interface CPLockController : UIViewController <UITextFieldDelegate> {
    // Bunch of ivars
}

// Bunch of properties

- (void)setTitle:(NSString *)title;
- (id)initWithStyle:(CPLockControllerStyle)theStyle; // <-- add this line
@end
...