美文网首页
类别、类拓展

类别、类拓展

作者: 彩虹下的笑颜 | 来源:发表于2021-03-23 11:29 被阅读0次

一、类别(运行时完成添加)

.h文件
#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface NSObject (Person)
@property (nonatomic, copy) NSString *name;
@end

NS_ASSUME_NONNULL_END
.m文件
#import "NSObject+Person.h"
#import <objc/runtime.h>
static NSString *nameKey = @"nameKey"; // name的key
@implementation NSObject (Person)
/**
 setter方法 getter方法
 */
- (void)setName:(NSString *)name {
    objc_setAssociatedObject(self, &nameKey, name, OBJC_ASSOCIATION_COPY);
}
- (NSString *)name {
    return objc_getAssociatedObject(self, &nameKey);
}
@end
其他地方调用
- (void)viewDidLoad {
    [super viewDidLoad];

    NSObject *objc = [[NSObject alloc] init];
    objc.name = @"wangwang";
    NSLog(@"%@", objc.name);
    
    // Do any additional setup after loading the view.
}

二、类拓展(编译时完成添加)

.h文件不做任何修改,只在.m文件修改,添加需要拓展的私有方法、成员变量,属性
#import "Person.h"

@interface Person(){
    NSString *_age;
}
-(void)getUserInfo;
@end

@implementation Person
-(void)getUserInfo{
    NSLog(@"====getuserinfo");
}
@end

相关文章

  • 类别、类拓展

    一、类别(运行时完成添加) 二、类拓展(编译时完成添加)

  • 【iOS】类别和类拓展

    类别(Category)和类拓展(Extension)是Objective-C中独有的用于拓展类对象的机制。 类别...

  • 类别和扩展

    类别(Category) 类别的作用 拓展当前类,为类添加方法拓展。 类别的局限性 无法向现有的类中添加新的实例变...

  • iOS 类别Category和类拓展Extension的使用与区

    1. 类别Category和类拓展Extension的区别 1>.类别(Category) 类别(Category...

  • IOS面试题

    类别的局限性?普通类别只是对类的方法拓展,不能增加类的实例变量, 类别的作用功能:1.扩充现有类的功能2.扩充自定...

  • 类拓展和关联对象

    1. 类拓展和分类 category 类别/分类: 专门用来给类添加新的方法。 不能给类添加成员属性,添加了成员变...

  • 类别(Category)与类扩展 (Extension)的区别

    iOS类别(Class Category) Category在iOS开发中使用非常的频繁,特别是在为系统类进行拓展...

  • iOS 类拓展的加载

    什么是类拓展呢? 类拓展就是一个匿名的分类。 类拓展 分类 类拓展的作用 给当前的类增加属性和方法。 类拓展何时加...

  • 拓客方式

    客户拓展的方式方法是多种多样的,但是我们需要清楚哪些是同属于一类的,而哪些是可以算作一个类别的。至于客户拓展的效...

  • iOS扩大按钮响应范围

    原理:重写view的下面任一方法 法一 要利用runTime创建类别私有属性 附上view的拓展类代码: 使用 法...

网友评论

      本文标题:类别、类拓展

      本文链接:https://www.haomeiwen.com/subject/jvtfhltx.html