我一直在愉快地使用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中创建了一个问题,但到目前为止还没有回复!
请指导......谢谢!
答案 0 :(得分:3)
那是因为开发人员没有在类声明中声明-initWithStyle:
。如果您检查CPLockController.h,则-initWithStyle:
不存在。
我不确定为什么开发人员没有这样做(也许他已经忘记了,在这种情况下你应该提交一个bug),但你可以轻松地将声明添加到CPLockController.h,如下所示:
@interface CPLockController : UIViewController <UITextFieldDelegate> {
// Bunch of ivars
}
// Bunch of properties
- (void)setTitle:(NSString *)title;
- (id)initWithStyle:(CPLockControllerStyle)theStyle; // <-- add this line
@end