- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 分类,类扩展理解:
一:分类(类别):OC中Category是Objective-C2.0之后添加的语言特性,它称为分类,或者类别;分类的主要作用,是为已经存在的类添加方法。(不改变已经存在类的前提下,为类动态的添加一些方法)。二:分类的源码解析:struct objc_category { char * _Nonnull category_name ...
2019-02-25 18:33:27 290
原创 self与super区别:
一:self与super定义:self:类似java中的this,表示当前接收消息的指针。(消息的接收者);super:OC中编译预指令,没有特别指代的对象。(注意,super并不表示self的父类,只是编译器的一个指令) 二:self与super的区别1):理解:我们都知道,OC中方法的调用,本质上是在OC Runtime期间发送消息。[self eat]会替换成...
2019-02-25 11:05:10 726
原创 runtime之KVO理解
一:KVO的基本使用:添加观察:addObserver:forKeyPath:options:context:移除观察:removeObserver:forKeyPath:响应观察的方法:- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSK...
2019-02-22 14:15:20 197
原创 KVC理解
一:KVC基础使用:(KVC主要对三种类型进行操作:基础数据类型及常量,对象类型,以及集合类型) 1):KVC setter方法: setValue:forKey: (属性为key,赋值)setValue:forKeyPath: (多级访问,不仅可以对当前对象属性进行赋值,也可以对“深层”对象的属性进行赋值)2):KVC getter方法:valueForKe...
2019-02-22 11:36:37 267
原创 runtime之OC消息派发与消息转发:
一:OC对象,类及元类的理解:1):OC对象分析struct objc_class { Class _Nonnull isa OBJC_ISA_AVAILABILITY;#if !__OBJC2__ Class _Nullable super_class OBJC2_UNAVAILABLE; co...
2019-02-19 18:33:27 294
原创 UITableView相关理解——cell复用机制
一:cell复用原理:UITableView创建之后,会维持一个UITableViewCell的复用池;当复用池中没有可复用的UITableViewCell时,会创建新的UITableViewCell,用于显示;当复用池中有可复用的UITableViewCell时,则会取出复用池中的UITsbleViewCell,用于cell显示。 二:cell创建:当使用dequeueReusa...
2019-02-19 16:00:17 982
原创 UITableView相关理解——cell动态高度
注意:使用UITableView时,一般均需配置UITableView的两个代理(UITableViewDelegate与UITableViewDataSource)。UITableViewDelegate:用于管理cell显示的自定义化设置(cell将要显示时的配置),cell的行高设置,cell的头,尾部的数据展示等等。UITableViewDataSource:UITableVi...
2019-02-19 12:06:50 415
原创 深拷贝与浅拷贝
1):定义:深拷贝:对原对象真正复制了一份,复制对象指向新的内存地址;(内容复制)浅拷贝:并没有对原对象进行复制,复制对象与原对象指向同一内存地址;(指针复制) 2):本质:原对象与拷贝对象的内存地址是否一致; 3):释例:非容器不可变对象(NSString)NSString *str = @"xxxxx";NSString *copyStr = [str ...
2019-01-23 12:02:36 97
翻译 iOS Runtime初解
原理:主要在运行时,将两个方法的实现(impl)进行交换,从而达到调用a(b),实现b(a);只有在method_swizzling语句执行完之后,方法交换才起作用。 交换时机:应该只在+ (void)load方法中实现method_swizzling;(在OC的运行时中,+load是在一个类被初始装载时调用,+initialize是在应用第一次调用该类的类方法或实例方法前调用...
2019-01-15 12:01:30 145
原创 AFNetworking理解:
AFNetworking注意事项:1):Get,Post请求中downloadProgress(uploadProgress)均是在session queue(当前会话队列)中调用。因此,如果想要根据上传下载进度来改变UI,则必须在主线程中修改。(iOS中UIKit框架不是线程安全的,为了确保安全,UI均在主线程中修改)2):Get,Post请求中的success,failure回调默认均...
2019-01-14 17:45:59 366
原创 weakSelf与strongSelf的理解:
在使用block过程中,为了防止循环引用,我们通常使用weakSelf与strongSelf来防止循环引用的产生: __weak typeof(self)weakSelf = self;(不增加self的引用计数) [self doSomeBlockJob:^{ __strong typeof(weakSelf)strongSelf = weakSelf; ....
2019-01-14 17:45:25 1576
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人