自定义博客皮肤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)
  • 收藏
  • 关注

原创 KVO实现

ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. _p = [Person new]; [_p WW_addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:NULL];}- (void)o

2020-09-08 11:18:24 91

原创 Runtime、Runloop

RuntimeOC的底层机制,oc中的对象调用实际上都是runtime的消息发送,达到很多在编译器确定的方法推迟到了运行时,这是oc成为动态语言的核心。消息转发,消息发送使用场景方法交换动态创建类遍历一个类中的所有属性及方法给系统分类添加属性和方法 //系统分类只会创建属性的声明字典转模型kvc/kvoRunloop使线程执行完之后不会退出,可以随时处理事件,避免占用太多资源所以runloop在没有处理消息时是保持休眠状态的本质是一个do-while的循环主线程在开始时会对应创建一

2020-08-27 16:57:36 142

原创 Weak 原理 个人学习总结

weak简单来说是一个哈希表,key为修饰对象的地址,value为指向该地址的指针数组。Weak是由runtime初始化并维护的一个weak表。在runtime的源码中由一个objc_weak文件中进行定义了weak表的结构体及相关的方法。其中结构体中定义可一个table_weak_t的一个weak的全局引用表,使用被修饰的对象的地址作为key,使用指向该地址的指针对象的数组作为key。Weak为什么会是弱引用?Weak修饰的对象不会增加该对象的引用计数,在被修饰对象被释放时会自动将指针置为nil

2020-08-27 09:09:07 355

原创 iOS APNs 个人学习总结

实现原理:手机端在APNs服务端获取deviceToken,将获取到的deviceToken发送给自己的服务端,服务端把要发送的消息以及目的device的表示打包发送给APNs端,APNs在自身已注册的Push服务的列表中找到相应的设备进行推送。...

2020-08-27 08:48:00 89

原创 iOS 多线程 个人学习总结

同步:不具备开启线程的能力,会在当前线程执行任务串行:在当前线程中顺序执行并行:不会开启新线程,在当前线程中顺序执行异步:具备开启新线程的能力,在新的线程中执行任务串行:开启一条新线程,在新线程中顺序执行并行:开启多条新线程,并且线程会重用,无序执行NSThread轻量级,使用简单,但需要手动管理线程声明周期、线程同步和线程加锁,开销大。GCD基于C的封装会自动管理线程的生命周期会自动利用更多的CPU内核NSOperation基于GCD的一个封装,更加的面相对象最大操作并发数可

2020-08-26 17:22:07 95

原创 iOS 关于代理、Block修饰符

代理:assign:使用assign来修饰delegate,在不使用delegate对象时需要手动去置为nil,在delegate对象执行完毕系统会释放掉这块内存如果使用assign则不会主动释放指针会造成野指针导致程序crashstrong:强引用,无法通过外部进行释放,会造成循环引用。Weak:在delegate对象执行完毕后会自动将指针置为nil,所以不会造成野指针的问题Block:作用域,block声明默认是在栈上,随时可能会被销毁,所以被销毁后再次调用会造成系统崩溃。所以需要使用copy

2020-08-25 15:46:47 352

原创 iOS Copy、strong的理解

使用copy修饰不可变对象没有问题,但是修饰可变对象有可能会出现crash。修饰可变对象时对其初始化,回导致对象由于没有重写非可变类的copy方法,调用的事父类的copy方法,得到的对象是一个不可变对象,在对其内部进行操作时会出现程序crash。...

2020-08-25 12:01:22 142

原创 苹果开发者续费,app认证问题

认证可以使用账号持有人之外的人来认证,且每人只能认证一个账号,重置只有两次机会

2020-08-19 15:55:38 246

原创 iOS一些第三方框架

//hudXNProgressHUD//键盘(Swift版)IQKeyboardManagerSwift//键盘框架(OC版)IQKeyboardManager

2020-08-19 15:47:50 89

原创 一个简单的Swift数字图形验证码

需要一个协议控制点击事件@objc protocol GraphCodeViewDelegate: class { func didTapGraphCodeView(_ graphCodeView: GraphCodeView);}//根据服务器返回的或者自己设置的codeStr绘制图形验证码 override func draw(_ rect: CGRect) { super.draw(rect) //根据要显示的验证码字符串,根据

2020-08-19 15:45:17 359

原创 Swift cell中有一个player,tableview刷新时的黑屏问题

cell中包含一个player,tableview滑动时需要保证视频不会被重置,所以需要把cell设置为全局变量如果刷新cell中子View的UI则需要调用layoutSubViewsself.tableView.reloadSections(IndexSet.init(arrayLiteral: 4), with: .none)这样会导致cell的地址发生变化self.tableViewreloadData()这样不会使cell的地址发生变化如果在更新数据时不刷新UI,则会导致view的f

2020-08-19 15:33:26 200

空空如也

空空如也

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

TA关注的人

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