自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

适用于初学者学习,使用的mysql教程

SQL初学者适用,可以方便初学者更深入的了解mysql的使用。

2019-02-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除