笔记
文章平均质量分 83
Yeppppppppp
这个作者很懒,什么都没留下…
展开
-
【iOS开发】——Category底层原理、Extension、关联对象
Category是Objective-C 2.0之后添加的语言特性,别人口中的分类、类别其实都是指的Category。Category的主要作用是为已经存在的类添加方法。通常情况下我们可以把类的实现分开在几个不同的文件里面,这样做的好处是:除此之外,Category还有几个应用场景:所以关于方法的调用优先级:> > 。即,优先调用cateory中的方法,然后调用本类方法,最后调用父类方法。注意⚠️:category是在运行时加载的,不是在编译时。Category的使用方法十分简单,如果感兴趣可以看看i原创 2022-08-12 23:47:25 · 1043 阅读 · 0 评论 -
【iOS开发】——属性关键字
在类中定义属性时,总会使用到@property进行定义,下面就来说说@property的使用。在使用过程中,如果需求公开且在其他类中使用时,通常会定义在.h头文件中;而如果只是该类自已需要使用,这时则会定义在.m实现文件中。所以我们平时可以看到有的属性定义在.h文件中,有的属性定义在.m文件中,就是这个原因。使用方法:那么属性关键字有哪些呢?atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。atomic:系统生成的 getter/setter 会保证 get原创 2022-07-31 01:52:13 · 217 阅读 · 0 评论 -
iOS——消息传递和消息转发机制
首先我们了解了什么是消息发送,明白了OC语言中所有对象的方法调用都是消息发送。其次我们知道了消息发送是SEL-IMP的查找过程调用resolveInstanceMethod或者resolveClassMethod作为动态解析方法给本类一个补救的方法去动态添加没有实现的方法的实现调用forwardingTargetForSelector让别的对象去执行这个函数(消息转发)forwardInvocation灵活的将目标函数以其他形式执行(我们的这个完整的消息转发的实现可以很简单https。...原创 2022-07-24 22:31:47 · 2867 阅读 · 0 评论 -
【iOS开发】——ARC(自动管理内存)的一些补充
所谓ARC就是自动管理内存,因为在以前内存管理是由程序员自己手动管理的想想就很头疼,所以就有了自动的引用计数(AutomaticReferenceCount简称ARC)的概念,引用计数是一个简单而有效的管理对象生命周期的方式。当我们创建一个对象时,它的引用计数就为1,当有一个新的指针指向它时,其引用计数就加1,当对象的引用计数变为0时,说明这个对象不再被任何指针指向了,这个时候我们就可以将对象销毁,回收内存。引用计数简单有效,帮助我们解决了关于内存管理的问题,所以引用计数也是ARC的基础。...原创 2022-07-24 22:31:31 · 343 阅读 · 0 评论 -
【iOS开发】——MRC(手动内存管理)的一些补充
iOS开发——MRC(手动内存管理)最近在复习MRC,发现当时总结的时候有几个点没有总结上,今天在写一篇补充记录一下。原创 2022-07-24 22:31:04 · 310 阅读 · 0 评论 -
iOS开发——SDWebImage源码
SDWebImage的具体功能SDWebImage是一个开源的第三方库,它提供了UIImageView的一个分类,以支持从远程服务器下载并缓存图片的功能。它具有以下功能:一个异步的图片加载器。一个异步的内存+磁盘图片缓存支持GIF、WebP图片后台图片解压缩处理确保同一个URL的图片不被多次下载确保非法的URL不会被反复加载确保下载及缓存时,主线程不被阻塞。在最开始先简单介绍这个框架:这个框架的核心类是SDWebImageManger,在外部有UIImageView+WebCache原创 2022-05-22 14:47:20 · 606 阅读 · 0 评论 -
iOS开发——ARC
iOS开发——ARC什么是自动引用计数内存管理/引用计数内存管理的四个法则__strong修饰符什么是自动引用计数顾名思义,自动引用计数(ARC)是指内存管理中对引用采取自动计数的技术。我们知道以前的程序员关于内存管理是手动管理的也就是MRC,在后来才引入了ARC。那么关于ARC相比于MRC最大的优化是什么呢?总结一下就是:**在LLVM编译器中设置ARC为有效状态,就无需再次键入retain或者是release代码。**这样就会在降低程序崩溃、内存泄漏等风险的同时,很大程度上减少了开发程序的工作量。如原创 2022-05-15 17:35:07 · 682 阅读 · 0 评论 -
iOS——常用的手势总结
iOS——常用的手势总结前言我们在平时玩手机的时候都知道关于手势的重要性,在加入手势的应用时,使我们的App变得更加方便使用,那么具体iOS有几种常用的手势呢?下面我简单的总结一下那些关于iOS最常用的手势。关于手势的应用iOS提供了UIGestureRecognizer类。手势识别UIGestureRecognizer类是个抽象类,下面的子类是具体的手势,开发这可以直接使用这些手势识别:使用手势的步骤使用手势很简单,分为两步:创建手势实例。当创建手势时,指定一个回调方法,当手势开始,改变、或原创 2022-03-19 20:11:21 · 3261 阅读 · 0 评论 -
iOS—— UIPickerView
iOS—— UIPickerView前言在绝大部分App中,我们都可以见到一个强大的控件——UIPickerView,它可以用来选择地区,选择时间等等,所以如何掌握UIPickerView就变得特别重要,下面简单的说一下UIPickerView的实现过程:实现过程UIPickerView的创建类似于UITableView的建立,首先,UIPickerView是需要遵循数据源和代理两个协议的,所以我们在使用前需要先添加这两个协议:@interface ViewController : UIVie原创 2022-03-13 21:06:05 · 1656 阅读 · 0 评论 -
[iOS开发]——内存管理(effectiveOC2.0阅读笔记)
[iOS开发]——内存管理(effectiveOC2.0阅读笔记)第29条:理解引用计数属性存取方法中的内存管理自动释放池保留环要点第30条:以ARC简化引用计数使用ARC时必须遵循的方法命名规则变量的内存管理语义ARC如何清理实例变量覆盖内存管理方法要点第31条:在dealloc方法中只释放引用并接触监听要点第32条:编写“异常安全代码”时留意内存管理问题要点第33条:以弱引用避免保留环要点第34条:以“自动释放池块”降低内存峰值要点第35条:用“僵厂对象”调试内存管理问题要点第36条:不要使用retai原创 2022-02-12 00:12:07 · 264 阅读 · 0 评论 -
[iOS开发]——协议与分类(effectiveOC2.0阅读笔记)
[iOS开发]——协议与分类(effectiveOC2.0阅读笔记)第23条:通过委托与数据源协议进行对象间通信要点第24条:将类的实现代码分散到便于管理的数个分类之中要点第25条:总是为第三方类的分类名称加前缀要点第26条:勿在类中声明属性要点第27条:使用“class-continuation分类”隐藏实现细节要点第28条:通过协议提供匿名对象要点OC语言有一项特性叫“协议”(protocol),它与java的“接口”(interface)类似。OC不支持多重继承,因而我们把某个类应该实现的一系列方法原创 2022-02-05 14:54:10 · 294 阅读 · 0 评论 -
[iOS开发]——对象、消息、运行期(effectiveOC2.0阅读笔记)
[iOS开发]——对象、消息、运行期第6条:理解“属性”这一概念什么是属性@property语法第6条:理解“属性”这一概念什么是属性“属性”(property)是OC的一项特性,用于封装对象中的数据。OC对象通常会把其所需要的数据保存为各种实例变量。@property语法我们在写代码的时候可以发现OC与其他面向对象的语言不同的地方在于OC很少去定义实例变量的作用域, 因为这样的话对象布局在编译期(compile time)就已经固定了。所以在访问到这些对象时,编译器就会把其替换为“偏移量”(o原创 2022-01-21 21:03:01 · 405 阅读 · 0 评论 -
属性传值和协议传值
属性传值和协议传值属性传值定义实现代码实现效果协议传值定义实现属性传值定义属性传值是正向传值,只可以从前面一个页面传递到第二个页面,不可以从第二个页面传递到第一个页面。实现首先我们需要创建两个ViewController,在第二个界面中定义一个属性来接收第一个界面传过来的信息,然后在第一个界面中创建button的点击事件,并在这里进行传值。代码实现首先在ViewController.h文件中,定义属性。#import <UIKit/UIKit.h>@interface Vie原创 2021-07-26 22:14:24 · 122 阅读 · 0 评论 -
OC仿写网易云时出现的问题
OC仿写网易云时出现的问题第一次写demo,遇到了特别多的问题,同时也学到了很多东西,先看看仿写的网易云的界面。好了开始说我的问题:1.代码规范问题,在写代码的过程中一定要好好注意代码规范问题,要不然不仅写出来很丑而且在检查的时候会很难,同时也可能会出现重复定义等问题,比如定义了两个相同的button,当我们引用的时候就会造成错误引用,比如你定义的是一个,引用的却是另一个,所以我们一定要注意代码规范问题!具体可以参照这篇:https://blog.csdn.net/qs_csu/article原创 2021-07-24 14:31:23 · 144 阅读 · 0 评论 -
iOS——自定义cell
iOS——自定义cell首先我们在自定义cell时,需要先创建一个继承于UITableViewCell的子类,然后在.h文件中添加我们所需要的属性。@interface MyTableViewCell : UITableViewCell@property(nonatomic , strong)UILabel* lable;@end像这样,然后我们在它的.m文件中增加两个方法- (instancetype)initWithStyle:(UITableViewCellStyle)style reu原创 2021-07-20 22:34:19 · 315 阅读 · 1 评论 -
协议(protocol)与委托
协议与委托协议规范、协议与接口使用类别实现非正式协议事例正式协议的定义事例遵守(实现)协议事例协议协议是OC的一个重要知识点,其作用类似于接口,用于定义多个类应该遵守的规范。规范、协议与接口==Objective-C中协议的作用就相当于其他语言中接口的作用。==协议定义的是多个类共同的公共行为规范,这些行为是与外部交流的通道,这就意外着协议里通常是定义一组公用方法,但不会为这些方法提供实现,方法的实现则交给类去完成。使用类别实现非正式协议通过前面的介绍可知,类别(catgory)可以实现非正式协原创 2021-06-08 23:11:18 · 155 阅读 · 0 评论