这是我的 TextValidator 类:
//TextValidator.h
#import <Foundation/Foundation.h>
@interface TextValidator : NSObject
- (BOOL) isValidPassword:(NSString *)checkPassword;
- (BOOL) isValidEmail:(NSString *)checkString;
- (BOOL) isEmpty:(NSString *)checkString;
@end
// TextValidator.m
#import "TextValidator.h"
@implementation TextValidator
- (BOOL) isEmpty:(NSString *)checkString
{
return YES;
}
- (BOOL) isValidPassword:(NSString *)checkPassword
{
return YES;
}
- (BOOL) isValidEmail:(NSString *)checkString
{
return YES;
}
@end
这是我尝试在 ViewController.m 中初始化 TextValidator 类的方法:
//ViewController.h
#import <Foundation/Foundation.h>
@interface SignUpViewController : UIViewController <UITextFieldDelegate>
@end
//ViewController.m
#import "SignUpViewController.h"
#import "TextValidator.h"
@interface SignUpViewController ()
@property TextValidator *myValidator;
@end
@implementation SignUpViewController
- (void)viewDidLoad
{
[[self.myValidator alloc] init]; //iOS error: No visible @interface for 'TextValidator' declares the selector 'alloc'*
[super viewDidLoad];
}
@end
当我尝试编译代码时,出现以下错误:
No visible @interface for 'TextValidator' declares the selector 'alloc'.
TextValidator 类继承自 NSObject,据我所知 init 和 alloc 函数已经在基类中定义。那么为什么程序会给出这样的错误呢?
请注意,我已经检查过this https://stackoverflow.com/questions/11949297/ios-error-no-visible-interface-for-project-declares-the-selector-alloc主题,它对我不起作用。
我的心灵调试器,无需阅读您的代码,就告诉我您正在调用alloc
在一个物体上instance,而不是一个类。这alloc
method 是由类定义的静态方法(通常继承自NSObject
) 返回底层对象的新实例。您不能要求实例自行分配!
现在看看代码,我发现你想要:
self.myValidator = [[TextValidator alloc] init];
构造一个新实例,并将其分配给myValidator
财产。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)