#import "ViewController.h"
#import "Programmer.h"
#import "Programmer+Program.h"
#import "Student.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"首页";
Programmer * grammer = [Programmer new];
grammer.title = @"zhaoxd";
NSLog(@"title---%@",grammer.title);
[grammer draw];
[grammer sing];
Student * student = [Student new];
student.content = @"baidi";
NSLog(@"title---%@",student.content);
[student draw];
[student sing];
}
@end
#import <Foundation/Foundation.h>
@interface Programmer : NSObject
@end
#import "Programmer.h"
@implementation Programmer
@end
#import "Programmer.h"
@interface Programmer (Program)
// 声明属性
@property (nonatomic, assign) NSString * title;
@property (nonatomic, assign) NSString * content;
// 声明公有方法
- (void)draw;
- (void)sing;
@end
#import "Programmer+Program.h"
#import <objc/runtime.h>
@implementation Programmer (Program)
// 为Catagory添加属性
//set方法
- (void)setTitle:(NSString *)title{
objc_setAssociatedObject(self, @selector(title), title, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
//get方法
- (NSString *)title{
return objc_getAssociatedObject(self, @selector(title));
}
//set方法
- (void)setContent:(NSString *)content{
objc_setAssociatedObject(self, @selector(content), content, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
//get方法
- (NSString *)content{
return objc_getAssociatedObject(self, @selector(content));
}
// 私有方法
- (void)program {
NSLog(@"I'm writing bugs!");
}
// 实现公有方法
- (void)draw {
NSLog(@"I can draw");
}
- (void)sing {
NSLog(@"I can sing");
}
@end
#import "Programmer.h"
@interface Student : Programmer
@end
#import "Student.h"
@implementation Student
// 实现公有方法
- (void)draw {
NSLog(@"Student can draw");
}
- (void)sing {
NSLog(@"Student can sing");
}
@end
网友评论