iOS错误:’xxxx’没有可见的@interface声明选择器’alloc’

前端之家收集整理的这篇文章主要介绍了iOS错误:’xxxx’没有可见的@interface声明选择器’alloc’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的TextValidator类:
  1. //TextValidator.h
  2. #import <Foundation/Foundation.h>
  3.  
  4. @interface TextValidator : NSObject
  5. - (BOOL) isValidPassword:(NSString *)checkPassword;
  6. - (BOOL) isValidEmail:(NSString *)checkString;
  7. - (BOOL) isEmpty:(NSString *)checkString;
  8. @end
  9.  
  10.  
  11. // TextValidator.m
  12. #import "TextValidator.h"
  13.  
  14. @implementation TextValidator
  15.  
  16. - (BOOL) isEmpty:(NSString *)checkString
  17. {
  18. return YES;
  19. }
  20.  
  21. - (BOOL) isValidPassword:(NSString *)checkPassword
  22. {
  23. return YES;
  24. }
  25.  
  26. - (BOOL) isValidEmail:(NSString *)checkString
  27. {
  28. return YES;
  29. }
  30.  
  31. @end

这是我尝试在ViewController.m中初始化TextValidator类的方法

  1. //ViewController.h
  2. #import <Foundation/Foundation.h>
  3.  
  4. @interface SignUpViewController : UIViewController <UITextFieldDelegate>
  5. @end
  6.  
  7. //ViewController.m
  8. #import "SignUpViewController.h"
  9. #import "TextValidator.h"
  10.  
  11. @interface SignUpViewController ()
  12.  
  13. @property TextValidator *myValidator;
  14.  
  15. @end
  16.  
  17. @implementation SignUpViewController
  18.  
  19. - (void)viewDidLoad
  20. {
  21. [[self.myValidator alloc] init]; //iOS error: No visible @interface for 'TextValidator' declares the selector 'alloc'*
  22. [super viewDidLoad];
  23. }
  24. @end

当我尝试编译代码时,我收到以下错误

  1. No visible @interface for 'TextValidator' declares the selector 'alloc'.

TextValidator类继承自NSObject,据我所知,init和alloc函数已在基类中定义.那么为什么程序会出现这样的错误呢?

请注意,我已经检查了this主题,但它对我不起作用.

解决方法

我的通灵调试器,没有读取你的代码,告诉我你在一个对象实例而不是一个类上调用alloc. alloc方法是由类(通常继承自NSObject)定义的静态方法,它返回基础对象的新实例.你不能要求实例分配自己!

现在看代码,我看到你想要:

  1. self.myValidator = [[TextValidator alloc] init];

构造一个新实例,并将其分配给myValidator属性.

猜你在找的iOS相关文章