自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 【iOS】Blocks

笔者最近看了小白书的Blocks的板块,这篇博客简单总结一下有关于Blocks的内容,笔者也是初次较为深入的学习Block。如有错误,请不吝赐教。带有自动变量(局部变量)的匿名函数。这样我们可以通过函数指针不需要知道函数名都可以调用这个函数,而Block则可以运行我们直接使用匿名函数。自动变量函数的参数静态局部变量静态全局变量全局变量能在函数的多次调用之间传递值的有后面三者。虽然这些变量的作用域不同,但在整个程序当中,一个变量总保持在一个内存区域。

2025-02-19 21:55:32 1060

原创 effective-Objective-C第六章阅读笔记

如果需要并行执行任务并等待结果,但不希望阻塞当前线程(比如主线程),使用 dispatch_group比 dispatch_apply更加合适。阻塞当前线程,可能在当前队列上执行时造成死锁,因此应避免在主队列上调用它。

2025-02-16 22:52:46 959 4

原创 effective—Objective—C 第七章阅读笔记

首先我们得认识一下我们这里处理转化,无缝桥接。__ bridge 的意思是ARC仍然具备OC对象的所有权,而 __bridge retained则与之相反,以为值ARC要交出对象的所有权。那么这段代码后面就要加上 CFRelease.与之类似,反向转化可以通过bridge_transfer来实现。这三种方式都叫做桥式转化。之所以会出现无缝衔接的内容,是因为:可是,你也许会问:以纯 Objective-C来编写应用程序时,为何要用到这种功能呢?

2025-02-11 18:58:37 852

原创 effective-Objective-C 第五章学习笔记

其实引用计数的内容主要是这一张图片的内容主要有下面三个方法用来操作计数器对象创建出来的时候,他保留计数至少要为1,若想让他继续存活,则要调用retain方法。下面我们来看一个例子,来理解这个概念:其实这段话的意思是我们理解引用计数不是简单的理解为1,而是理解长持有一个数,某些操作增加计数或者是减少计数如果是strong关系。那么这个方法会先保留新值并释放旧值,然后更新实例变量,让他指向新值。假如还未保留新值在释放旧值的时候,两个值有指向同一个对象,先执行的release 可能会导致此对象永远回收,这个

2025-02-06 18:13:27 1437

原创 effective-Objective-C 第四章阅读笔记

如果我们大量的采用这种模式,就会经常性的出现这种代码:``respondsToSelector`来判断是否符合对应的一个条件,但是实际上并不需要这么多的一个判断,我们可以采用一个bool值作为某一个方法是否存在的判断,这样就可以节约很多时间。该模式的主旨是:定义一套接口,某对象如果想接受另一个对象的委托,则需要遵循这个接口,以便成为委托对象,这里主要有两个部分的内容,一个是处理数据的内容被称作数据源,另一个事件处理对象则叫做委托。这样在开发的后续版本,不需要改变公共API,就可以修改后段的一个实现类。

2025-01-24 17:34:41 1901 1

原创 effective Objective—C 第三章笔记

当我们返回一个对象的要求是collection的时候,我们还是尽量返回一个不可变的对象,假设他可以进行一个添加和删除,但是我们要设置成一个不可变的collection,这个不可变collection是内部可变的一个collection的复制。这里他的子类也要使用这个全能初始化方法,但是这里会出现一个问题,也就是我们这里的代码,如果调用他父类的方法就会出现一个问题,创建出了一个长和宽不同的正方形,所以我们需要重写父类的一个方法。我们可以创建属于自己的程序库中所发生的错误指定一个专用的错误范围的字符串。

2025-01-21 20:39:09 639

原创 内存管理(一)

这是笔者对于计算机操作系统中的内存的一个简单学习。

2025-01-20 18:02:37 740

原创 effective-Objective-C 第二章阅读笔记

在对象之间传输数据并执行任务的过程叫做”消息传递“,这部分内容主要有关于运行期环境中各个部分的协同工作的内容@end这里注意我们初始化的函数中注意一个点就是我们对应的属性的修饰符对应起来。copy就用copy方式赋值。关联对象用来解决在某些情况下,有的类的实例是由某种机制创建的,我们无法自己创建一个子类实例,这时候才会用到关联对象的一个内容。比方说:给一个分类添加属性,或者是不能修改类定义的时候,就会变得非常常用。

2025-01-16 20:33:43 4281

原创 Effective Objective-C 第一章阅读笔记

如果这里面调用的函数时多态的,那么对于函数型语言则是通过一个虚方法表来查出应该执行哪一个函数,至于采用消息结构的语言,无论是否多态,总是在运行时才会去查找所要执行的一个方法。上面代码中的someString变量是用来指代一个NSString的类型的,这里所有的对象都是存储到我们的堆空间中的,而不是栈区。我们可以发现他有类型信息,可以更好的描述来常量的含义,这里我们命名常量的时候,如果局限在某一个编译单元中就加字母k,如果常量在类之外可见,则通常以类名为前缀。但是我们在引入协议的时候,就不可以使用向前声明。

2025-01-11 20:57:47 1773

原创 【iOS】MVP模式

笔者在之前的iOS开发中学习了MVC架构,最近偶然看到了有关于MVP的内容,下面是笔者对于这部分的内容的一个个人理解。如有纰漏请,还请不吝赐教。

2024-12-15 15:48:38 1167 5

原创 【iOS】UIImagePickerController

UIImagePickerController是iOS平台上的一个类,用于在应用程序中访问设备的照片库、相机和视频录制功能。它提供了一个用户界面,使用户可以从设备的媒体库中选择照片或视频,或者使用设备的摄像头拍摄照片或录制视频。在这里我们先只介绍一下访问相机和相册这两个功能。下面笔者直接通过一个例子来介绍对应的一个内容viewDidLoad部分[pickImageButton setTitle:@"选择图片" forState:UIControlStateNormal];//设置了一个button。

2024-12-08 20:37:47 502

原创 【iOS】UIPickerView

笔者这周学习了这个UI控件,这个控件和UItableView比较相似,这里笔者简单介绍一下这个控件的用法。

2024-12-08 16:00:49 551

原创 【iOS】设计模式的六大原则

笔者这段时间看了一下有关于设计模式的七大原则,下面代码示例均为OC。

2024-11-30 17:48:34 1355 2

原创 【iOS】多线程基础

笔者由于对于GCD不是很了解,导致了项目中网络请求哪部分的一个代码冗长且逻辑混乱,很多时候出现了问题也不知道怎么解决,所以笔者决定学习一下多线程的内容,方便自己之后对于GCD的一些内容的理解。线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。同一进程中内多个线程可以共享代码段,数据段,打开的文件等资源。但是每个线程由自己独立的寄存器和栈,可以保证线程的控制流是独立的优点一个进程中可以有多个线程各个线程中可以并发的执行。

2024-11-30 17:47:50 1325

原创 【iOS】bug调试技巧

在写知乎日报这个项目的过程中我遇到了各式各样的一个bug,一个bug对于一个项目而言往往是非常致命的,我们有时候会因为一个小bug苦苦寻找20,30分钟,然后发现是一个简单的问题,所以笔者为此特地学习了有关于iOS开发中bug调试的内容。

2024-11-23 21:02:03 1134

原创 【iOS】UICollectionView的学习

UICollectionVIew和我们之前的UITableView比较类似,但是UICollectionView可以实现布局的效果,比如说瀑布流布局抑或者是圆环布局,这也是UICollectionView比UITableView强大的地方,这里笔者简单学习了有关于UICollectionView的一些用法,下文笔者来简单介绍一下有关于UICollectionView的一个使用的内容。首先我们先要自定义一个Layout。@end返回一个瀑布流的效果,其实是主要是重写下面这两个函数。

2024-11-23 18:48:11 1111

原创 AFNetworking中的POST和GET请求

笔者之前学习了有关于GET请求的内容,这里重新学习一下有关AFN的POST和GET这两个请求的内容,下文中的API调用的是开源软件Spotify的API。

2024-11-23 16:41:17 867

原创 【iOS】知乎日报第四周总结

这里首页获取三个数据混乱的原因主要还是因为网络请求的异步回调的问题,这里笔者上网搜索了一下相关内容后面采用了一个这个类和一个并行队列来解决,这个类是状态锁,这里笔者还不是很清楚原因,这里可以简单介绍一下状态锁的一个内容:这里笔者给出我下滑加载的部分代码:FMDB库的一个使用这里笔者实现收藏中心采用了一个第三方库FMDB这个库来实现的,首先这个库的是用OC来包装sqlite这个小型数据库,然后我们只需要调用她分装好的一个接口就可以了,这里笔者简单介绍一下使用方法,不涉及原理。创建一个库主要有三种方式来创建

2024-11-17 20:46:56 985

原创 【iOS】知乎日报第三周总结

本周笔者因为金工实习整个项目进展比较慢,因为金工实习耽搁了挺长一段时间的,这周项目进展比较缓慢。下面简单介绍一下有关于这周学到的一些内容和遇到的一些问题。

2024-11-10 15:42:53 771

原创 【iOS开发】知乎日报第二周总结

这周笔者主要在完成有关于详情页部分的内容,实现了一个无限右滑的一个效果,以及申请到了评论区的一个数据,开始着手于评论区的实现部分,下面笔者简单总结一下有关于这周遇到的一些问题。

2024-11-03 16:40:40 604

原创 【iOS】知乎日报第一周总结

笔者在本周算是正式开始写项目了,本周主要是大致完成了主页的内容,大致完成了主页面的ui以及实现了点击进入单个cell的效果,但还存在一些小问题,之后找到解决方法会补充上去。

2024-10-27 14:56:19 1460 2

原创 【iOS】使用一个单例通过AFNetworking来实现网络请求

笔者这周主要学习了第三方库AFNetworking的使用,这里笔者简单介绍一下有关于AFNetworking这个第三方库的使用,在这之前我们先重新复习一下有关OC网络请求的内容。

2024-10-19 23:14:30 1247

原创 【iOS】YYModel的初步学习

随着时代的发展,iOS解析JSON数据的第三方库越来越多,原先的JSONModel的性能上的问题逐渐显现,现在我们可以采用更加高效的第三方库YYModel。

2024-10-12 22:42:30 1072

原创 【iOS】计算器的仿写

笔者应组内要求,简单实现了一个可以完成简单四则运算的计算器程序。UI界面则是通过最近学习的Masonry库来实现的,而简单的四则运算内容则是通过栈来实现一个简单的四则运算。

2024-09-28 16:47:27 1391

原创 【iOS】引用计数(一)

笔者最近开始学习了一下有关于引用计数的内容,写这篇博客来简单认识一下引用计数部分的内容。我们可以通过一个开关灯的思路去理解这部分内容,正如上图所展示的,我们办公室在第一个人来的时候就要开灯,在最后一个人走后就要关灯,不能在当一个人走后就进行一个关灯操作,这样会影响其他人工作,所以只有当最后一个人离开办公室的时候再关灯就好了,这样才可以让其他人正常工作,而我们创建的对象可以理解为办公室里的照明设备,只要有一个人工作,照明设备就不可以被关闭。OC中对应的一个状态对照明设备的操作生成对象开灯持有对象。

2024-09-22 11:59:17 1388

原创 【iOS】KVC的学习

笔者简单学习了有关与KVC的相关内容,这里写一篇博客简单介绍一下相关内容。KVC(Key-value coding)键值编码,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值。而不需要调用明确的存取方法。这样就可以在运行时动态地访问和修改对象的属性。而不是在编译时确定,这也是iOS开发中的黑魔法之一。很多高级的iOS开发技巧都是基于KVC实现的。//直接通过Key来取值//通过Key来设值//通过KeyPath来取值//通过KeyPath来设值。

2024-09-21 14:34:10 1077

原创 【iOS】单例模式

笔者在之前已经写过有关于单例模式的相关博客,但是理解比较浅显,这里笔者重新学习有关于单例模式的一个内容单例模式是一种创建类型的时候常用的一种设计模式,通过单例创建的类在整个程序进程中仅仅只存在一个实例。如果说每一个人都是一个类,那么从他出生开始,他就是生活中的唯一实例,每当有人要拜访或者联系你的时候,无论别人认识你的时候你是什么状态,他所能联系到的都是现在的你。你本身的状态会在其他地方发生改变,即当你状态改变后,后续所有找到你的,都是看到状态改变后的你。那么,我们就可以认为每一个人都处于单例模式。

2024-09-17 13:29:06 1245

原创 【iOS】push和present的区别

在iOS开发中,我们经常性的会用到界面的一个切换的问题,这里我们需要理清有关视图控制器的push和present的相关方法的区别,以及两种切换方式所对应的视图控制器的形式。

2024-09-12 19:37:59 1561

原创 【iOS】UIViewController的生命周期

之前对于有关于UIViewControlller的理解比较浅显,仅仅只知道他是用来加载视图的,后面在有关天气预报的内容中了解了有关视图控制器生命周期的内容。

2024-09-12 19:33:15 1927

原创 【iOS】MVC入门

高内聚,低耦合。代码均摊,易于扩展,具有易用性。我们创建一个控件,设置这个控件的样子,设置这个控件的交互方法,展示这个控件,都需要一定的代码量,控件少的时候还好,看得过去,但是控件一多,像下面这个App 的界面,各种控件就多起来了,这个时候如果还把他们都堆在一个ViewController 里面就不合适了,要改bug,要添加控件就会变得非常麻烦。这时候我们就会发现我们的一个ViewController的代码会非常臃肿,修改代码也不方便。

2024-09-08 11:22:53 1658

原创 【iOS】属性关键字

这里笔者给出一个表格来进行一个总体的概述,先罗列出一个表格,方便对照。关键字解释atomic原子性访问,可以保证属性的赋值和取值的原子性操作是线程安全的。nonatomic非原子性,一般属性都用 nonatomic 进行修饰,因为 atomic 非常耗时。readwrite可读可写(默认),同时生成 setter 方法和 getter 方法的声明和实现。readonly只读,只生成 getter 方法的声明和实现。strong。

2024-09-01 20:32:57 1364

原创 暑假学习内容简单总结

笔者在暑假通过几个项目学习了一些iOS开发入门的相关知识,这里笔者对于大部分内容进行一个总结。在iOS的实际开发中我们经常需要使用自定义color。这里简单讲解一下有关UIColor的内容,我们可以使用mac上的颜色选择器得到相应颜色,然后将这几个值写到下面的方法中就可以了。

2024-09-01 17:46:10 829

原创 Masonry的入门学习

在日常的开发中,我们如果面对一些很复杂的UI布局,我们如果统一使用frame的方式来设置的话,会相当复杂,这时候就孕育而生了自动布局,但是在我们原生的环境下,苹果原生的自动布局语言比较复杂,而我们现在要学习的一个Masonry这个第三方库会给我们提供了更加简洁的语法。

2024-09-01 11:28:55 1084

原创 折叠cell的学习

笔者在暑假的3GShare的项目中就写了有关折叠cell的内容,这里笔者重新讲一下相关内容。

2024-09-01 11:21:40 558

原创 iOS多界面传值

KVO全称也就是观察者模式,是apple提供的一套事件通知机制.允许对象监听另一个对应特殊属性的改变,并在改变时接受到该事件.一般继承自NSObject的对象都默认是支持KVO。KVO(Key-Value-Observing,键值观察),即观察关键字的值的变化。首先在子页面中声明一个待观察的属性,在返回主页面之前修改该属性的值。在主页面中提前分配并初始化子页面,并且注册对子页面中对应属性的观察者。在从子页面返回主页面之前,通过修改观察者属性的值,在主页面中就能自动检测到这个改变,从而读取子页面的数据。

2024-08-03 11:45:24 1122

原创 暑假第三周任务——天气预报

这个天气预报主要是通过申请网络请求来获取实时数据,来实现一个天气预报的功能,在这里主要是因为笔者第一次接触有关通过网络请求来获取数据的相关内容,所以刚开始遇到很多问题,后面渐渐的才找回一点思路去完成这个项目这是暑假最后一个任务,第一次学习有关网络请求的内容,刚开始确实会不从下手,但是多写写相关代码,多看看相关的博客,才可以找到相关的思路,要多去尝试,才可以完成一个项目。

2024-08-03 11:36:51 1148

原创 CALayer的简单学习

笔者也只是对着部分内容做了一个简单的介绍,CALayer的内容很多,这只是对于CALayer的一个简单的学习与使用。

2024-07-27 16:08:27 947

原创 暑假第二周任务——3Gshare的仿写

通过这次3GShare的仿写主要让我了解有关协议传值和属性传值的相关用法,以及简单了解了有关通过UITableView来实现一个简单的聊天室的效果。

2024-07-27 14:47:54 786

原创 暑假第一周任务——仿写网易云

这里是仿写有关暑假第二个任务。仿写网易云这个项目,这个项目主要是让我熟悉对于各种视图互相嵌套的使用,以及可以更加熟练的使用有关自定义cell部分的内容,

2024-07-20 17:46:41 368

原创 暑假第一周学习内容-ZARA仿写

本文主要是用来总结仿写ZARA中遇到的一些问题,以及ZARA中学习到的一些新知识。这部分是我的一个自定义cell的内容,我这里主要是实现换头像功能,以及设计自定义cell实现这个效果。这部分换头像的内容是通过一个照片墙的来实现的,然后在给照片墙上的每一个imageView添加一个手势识别器,然后给手势识别器提供相应的换头像的协议函数,从而解决这部分换头像的函数。

2024-07-20 17:41:41 1098

空空如也

空空如也

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

TA关注的人

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