CC的博客

  • 首页
  • iOS
  • Android
  • React-Native
  • 读书杂谈
  • About
CC
记录美好生活
iOS

KVC本质探索

简介 KVC全称是Key-Value Coding,键值编码,可以通过Key来访问和修改Value。 常见API - (void)setValue:(id)value forKey:(NSString *)key; - (void)setValue:(id)value forKeyPath:(NSString *)keyPath; - (id)valueForKey:(NSString *)key; - (id)valueForKeyPath:(NSString *)keyPath; setValue:forKey…

2021/03/23 阅读全文
iOS

KVO原理探索

KVO使用方法 给对象的指定属性绑定监听,并设置监听类型。每当该对象指定的属性被改变时,系统就会调用observeValueForKeyPath方法。 - (void)viewDidLoad { [super viewDidLoad]; People *people = [People new]; self.people = people; /* 作用:给对象绑定一个监听器(观察者) - Observer 观察者 - KeyPath 要监听的属性 - options 选项(方便在监听的方法中拿到属性值) */ [p…

2021/03/23 阅读全文
iOS

category添加成员变量

背景 定义一个Student类,使用@property声明一个score属性,编译器会自动帮我们生成_score成员变量和对应的setter&getter方法声明和实现。 @interface Student //@property (nonatomic,assign) int score; { int _score; } -(void)setScore:(int)score; -(int)score; @end @implementation Student - (void)setScore:(int)s…

2021/03/23 阅读全文
iOS

category探索

简介 category是Objective-C 2.0之后添加的语言特性,category的主要作用是为已经存在的类添加方法。除此之外,apple还推荐了category的另外两个使用场景 可以把类的实现分开在几个不同的文件里面。这样做有几个显而易见的好处: - 减少单个文件的体积 - 把不同的功能组织到不同的category里 - 由多个开发者共同完成一个类 - 按需加载想要的category等 2. 声明私有方法 category定义 category定义了category的行为,可以添加实例方法、类方法、实现…

2021/03/23 阅读全文
iOS

NSObject本质--在内存中的大小

OC的代码基于C/C++ 实现的,所以我们可以将OC代码转换成C++ 代码查看NSObject在C++ 中的实现。 转换命令: xcrun -sdk iphoneos clang -arch arm64 main.m -rewrite-objc -o main.cpp xcrun: xcode commendline run 参数sdk 指定iphoneos系统 clang 编译器 参数arch指定arm64 CPU架构版本 rewrite-objc 重写OC的代码 参数o 指定生成的文件名,不指定则默认和原文件同…

2021/03/22 阅读全文
iOS

runtime中实例对象&类对象&元类对象

实例对象(objc_object) objc.h定义 /// Represents an instance of a class. struct objc_object { Class _Nonnull isa OBJC_ISA_AVAILABILITY; }; /// A pointer to an instance of a class. typedef struct objc_object *id; 这里的 id 被定义为一个指向 objc_object 结构体 的指针。从中可以看出 objc_object …

2021/03/22 阅读全文
搜一搜
最新 热点 随机
最新 热点 随机
transformer-task1 iOS中常见线程同步方案 动态调试-debugserver+LLDB dyld_shared_cache动态库共享缓存 Mach-O文件初识 效率工具-usbmuxd
Mach-O文件初识 探索Category-01本质 Promise&Async&Awaite(异步函数) Hello iOS消息转发机制 动态调试-debugserver+LLDB
归档
  • 2025 年 2 月
  • 2021 年 7 月
  • 2021 年 6 月
  • 2021 年 3 月
  • 2020 年 11 月
  • 2020 年 10 月
  • 2020 年 8 月
  • 2020 年 1 月

COPYRIGHT © 2020 CC的博客. ALL RIGHTS RESERVED.

Theme Kratos

豫ICP备2023032048号