3.OC语言特性相关

2020-01-14  本文已影响0人  Glenn_h

Category(分类)

特点

可添加那些内容

struct objc_category {
    char * _Nonnull category_name                            OBJC2_UNAVAILABLE;  //分类名
    char * _Nonnull class_name                               OBJC2_UNAVAILABLE; //类名
    struct objc_method_list * _Nullable instance_methods     OBJC2_UNAVAILABLE; //实例方法
    struct objc_method_list * _Nullable class_methods        OBJC2_UNAVAILABLE;  //类名
    struct objc_protocol_list * _Nullable protocols          OBJC2_UNAVAILABLE; //协议
}  

关联对象

//关联对象  object:被关联的对象; key:关联的key,要求唯一;  value:关联的对象
void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)
//获取关联的对象
id objc_getAssociatedObject(id object, const void *key)
//移除关联的对象
void objc_removeAssociatedObjects(id object)

Extension(扩展)

一般用扩展做什么

特点

通知

代理

KVO

属性关键字

assign和week有什么区别

copy

上一篇 下一篇

猜你喜欢

热点阅读