笔记
文章平均质量分 95
复杂化
这个作者很懒,什么都没留下…
展开
-
[iOS开发]NSTimer与循环引用的理解
文章目录问题引入循环引用简单理解的循环引用Block中的循环引用强弱共舞NSTimer创建NSTimer销毁NSTimerinvalidate与fireinvalidate与 = nil面试题如何解决NSTimer强持有的问题?中间的代理对象使用NSObject类实现消息转发使用NSProxy类实现消息转发改变timer引用在合适的地方调用invalidate方法NSTimer在runloop中我们有接触过,当时只是简单了解,NSTimer其实是很重要的一部分知识,我们需要好好了解一下这部分和循环引用部分原创 2021-08-16 20:16:53 · 515 阅读 · 0 评论 -
[iOS开发]继承学习笔记
1.基本概念继承是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。2.特点通过“父类”语法来实现,实现继承的类被称为子类,被继承的类被称为父类,也称其为基类、超类。父类和子类的关系是一种“一般和特殊”的关系。例如,水果和苹果的关系,苹果继承了水果,苹果是水果的子类,苹果是一种特殊的水果。子类可继承父类的全部成员变量、全部方法(包括初始化方法)。3.在练习中进行的一些笔记的记录1. 如果要让成员变量可以被继原创 2020-06-27 23:57:47 · 200 阅读 · 0 评论 -
effective OC2.0 阅读笔记(四 协议与分类)
第23条:通过委托与数据源协议进行对象间通信这条讲的也比较基础,就是基本的delegate,protocal使用。要点委托模式的主旨是定义一套接口,某对象若想接受另一个对象的委托,则需遵从此接口,以便成为其“委托对象(delegate)”。将委托对象应该支持的接口定义成协议,在协议中把可能需要处理的事件定义成方法。委托模式可将数据与业务逻辑解偶。视图对象的属性中,可以包含负责数据和事件处理的对象。这两种对象分别称为“数据源”(data source) 和 委托"delegate"。又例如:当原创 2021-02-21 17:16:10 · 254 阅读 · 3 评论 -
effective OC2.0 阅读笔记 (三 接口与API设计)
第15条:用前缀避免命名空间冲突为什么要避免命名空间冲突?Objective-C没有其他语言那种内置的命名空间 (namespace) 机制.在应用开发时,所有的代码和引用的静态库最终都会被编译到同一个域和二进制中。这样的后果是一旦我们有重复的类名的话,就会导致编译时的冲突和失败。避免命名冲突变相实现命名空间:为所有名称都加上适当前缀。使用Cocoa创建应用程序时一定要注意,Apple宣称其保留使用所有“两字母前缀”(two-letter-prefix)的权利,所以我们选用的前缀最好是三个字母的原创 2021-03-11 21:47:52 · 183 阅读 · 0 评论 -
[iOS开发]隐藏与封装的学习笔记与记录
一、封装的概念:面向对象的三大特性:封装(成员变量)、继承和多态。将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。二、可以实现的目的1.隐藏类的实现细节2.让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对成员变量的不合理访问3.可进行数据检查,从而有利于保证对象信息的完整性4.便于修改,提高代码的可维护性三、访问控制符@private(当前类访问权限):用于彻底隐藏成员变量,在类的实现原创 2020-06-21 01:15:37 · 242 阅读 · 0 评论 -
effectiveOC2.0阅读笔记(二对象\消息\运行期)
面向对象语言编程时,“对象”(object)就是“基本构造单元”,开发者可以通过对象来储存并传递数据。在对象之间传递数据并执行任务的过程就叫做“消息传递”。当应用程序运行起来以后,为其提供相关支持的代码叫做“Objective-C运行期环境”,它提供了一些使得对象之间能够传递消息的重要函数,并且包含创建类实例所用的全部逻辑。第六条:理解"属性"这一概念属性是OC的一种特性,用于封装对象中的数据。OC对象通常会把其所需要的数据保存为各种实例变量。实例变量一般通过“存取方法”来访问。其中,“获取方法”(原创 2021-03-04 22:21:04 · 522 阅读 · 3 评论 -
effective OC2.0 阅读笔记 (一 熟悉Objective-C)
第一条:了解Objective-C语言的起源Objective-C从Smalltalk语言是从Smalltalk语言演化而来,Smalltalk是消息语言的鼻祖。所有的OC语言的对象都必须这样:NSString *someString = @"The string"; 因为对象所占内存总是分配在“堆空间(heap space)”中,而绝不会分配在"栈(stack)上"。不能像这样:NSString stackString; 分配在堆中的内存必须直接管理,而分配在栈上用于保存变量的内存则会在其栈帧弹出时原创 2021-03-02 20:18:35 · 307 阅读 · 1 评论 -
[iOS开发]2020.9.6-2020.9.12笔记
用UINavigationController的时候使用pushViewController:animated----返回之前的视图[[self navigationController] popViewControllerAnimated:YES];—ps:push以后会在navigation的left bar自动添加back按钮,它的响应方法就是返回。所以一般不需要写返回方法,点back按钮即可。其他时候用presentModalViewController:animated[self pre.原创 2020-09-07 19:19:29 · 237 阅读 · 0 评论 -
[iOS开发]写计算器遇到的问题与一些记录
1. 用到的知识点mvc设计模式Masonry布局用到了算法:栈 来进行计算更加方便(c语言简易表达式求值)2.笔记一、实现表达式求值有两种方法中缀转后缀这篇博客讲解比较好 到底什么是后缀表达式 又是怎么转化的直接用中缀表达式进行计算二、栈的基本思想按照基本思想 View里写每个按钮 并且使用Masonry进行布局通过观察计算器按钮的布局 发现前四排是一样的形状 最后一排0的形状与其他不同 所以通过循环来建立了前四行按钮 然后再单独创建3个按钮即可在循环创建按钮中,通过不原创 2020-10-12 19:38:23 · 1093 阅读 · 8 评论 -
【C语言】滑动窗口算法
1.滑动窗口的思想:它是一个运行在一个大数组上的子列表,该数组是一个底层元素集合。假设有数组 [a b c d e f g h ],一个大小为 3 的 滑动窗口 在其上滑动,则有:[a b c] [b c d] [c d e] [d e f] [e f g] [f g h]一般情况下就是使用这个窗口在数组的 合法区间 内进行滑动,能够极大地提高算法地效率2.滑动窗口的几个例题应用1....原创 2020-05-16 23:59:09 · 7895 阅读 · 6 评论