iOS:用delegate调用属性和方法,添加属性和方法

delegate 本质为类增加属性和方法,可以用delegate调用未知对象的属性和方法,为已知对象添加属性和方法

test.h

#import <Foundation/Foundation.h>
@interface test : NSObject
@property (nonatomic,assign)BOOL isTest;
- (void)test;
@end


test.m


#import "test.h"
@interface test ()
@property (nonatomic,assign) BOOL isTestAdd;
@end
@implementation test
- (void)test;
{
    NSLog(@"test %@",@(self.isTest));

}

- (void)testAdd
{
    NSLog(@"testAdd %@",@(self.isTestAdd));
}
@end
  • 用testAdd调用test属性和方法,添加属性和方法(添加时需在test.m实现)

ViewController.h

#import <UIKit/UIKit.h>
@protocol testAdd<NSObject>
- (void)testAdd;
- (void)test;
@property (nonatomic, assign) BOOL isTest;
@property (nonatomic, assign) BOOL isTestAdd;
@end

@interface ViewController : UIViewController
@property (nonatomic)id<testAdd> test;
@end

ViewController.m

#import "ViewController.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.test = [[NSClassFromString(@"test") alloc] init];
    self.test.isTest  = YES;
    self.test.isTestAdd = YES;
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    [self.test test];
    [self.test testAdd];
}
@end

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。