iOS日常学习
文章平均质量分 89
从OC基础,到学习Cocoa框架,布局UI,再逐渐过渡到一些底层的iOS知识
zhngxvy
对齐颗粒度
展开
-
【iOS】内存对齐
内存对齐可以提高CPU的存取效率同时提升安全性,会有部分内存的浪费,但是系统又会根据数据存储情况进行内存优化,尽可能降低内存浪费,这样即保证了性能又减少了浪费原创 2024-07-22 11:45:20 · 882 阅读 · 0 评论 -
【iOS】isMemberOfClass&isKindOfClass
对NSObject API中的两个方法 isKindOfClass 和 isMemberOfClass 的实现进行了分析,分别从底层源码和调用结果两个角度验证原创 2024-07-20 16:00:43 · 1430 阅读 · 0 评论 -
【iOS】内存五大分区
本文认识了计算机RAM内存的五大分区,分析了每个区域的特性和优缺点,并将iOS内存与其他系统进行了区分,总结了堆栈结构、函数栈以及堆栈的联系与区别原创 2024-07-19 11:18:28 · 1380 阅读 · 0 评论 -
【iOS】MRC下的单例模式&批量创建单例
最近正在接触MRC,顺带了解了一下MRC下是如何手动管理资源的创建与释放来实现单例的,并且学习了如何简洁地批量创建单例对象。原创 2024-06-08 00:18:06 · 1330 阅读 · 1 评论 -
【iOS】UICollectionView使用
总结了UICollectioinView的基本使用、参差瀑布流式和圆环式布局。其实算是特殊Flow布局的UITableView,但简单的列表仍可以使用UITableViewUICollectionView最大的优势就是通过自定义Layout,实现cell的布局,整体的思路就是:通过一些几何计算,设置好每个item的布局位置和大小一篇较为详细的 UICollectionView 使用方法总结原创 2024-01-21 20:09:56 · 2333 阅读 · 0 评论 -
Lookin高效调试iOS App的UI
Lookin 可以查看与修改 iOS App 里的 UI 对象,类似于 Xcode 自带的 UI Inspector 工具,或另一款叫做 Reveal 的软件。原创 2024-05-26 23:36:25 · 1739 阅读 · 0 评论 -
【iOS】UIColor、CGColor、CIColor的区别和联系
UIColor是UIKit中用于表示颜色的类,一个UIColor对象包含了颜色和透明度的值,可以用来表示不同颜色空间(RGB、HSB)的颜色。UIColor提供了各种便捷的方法创建和管理颜色,正如上面提到的,可以使用与定义的颜色常量,也可以使用RGB或HSB的值来自定义颜色。CGColor是Core Graphics框架(Apple的绘图框架)中用于表示颜色的数据类型,本质是一个结构体,是一种低级的颜色表示方式,更接近图形底层,提供了底层的图形渲染和绘制功能。CGColor实际上是指向CGColorRef的原创 2024-01-14 15:12:10 · 1439 阅读 · 0 评论 -
【iOS】didReceiveMemoryWarning实例方法
iPhone下每个App可用的内存是被限制的,如果一个App使用的内存超过20M,则系统会向该App发送(内存警告)消息,收到此消息后,App必须正确处理,否则可能出错或出现内存泄漏。且对相关方法loadView/viewDidLoad/viewDidUnload/initWithNib/initWithCoder:进行了总结。原创 2024-05-28 21:51:29 · 1396 阅读 · 1 评论 -
【iOS】内存泄漏检查及原因分析
迅速膨胀的内存可以很快让程序毙命,所以要多加防范。即使有 ARC(自动引用计数)内存管理机制,但在现实中对象之间引用复杂,循环引用导致的内存泄漏仍然难以避免,所以关键时刻还要自力更生。分析内存泄露不能把所有的内存泄露查出来,有的内存泄露是在运行时,用户操作时才产生的。开启了ARC并不是就不会存在内存问题,苹果有句名言:ARC is only for NSObject。使用ARC的项目,一般内存泄漏都是 malloc、自定义结构、资源引起的,多注意这些地方进行分析。原创 2024-06-05 00:07:12 · 1990 阅读 · 0 评论 -
【iOS】JSONModel的基本使用
简单来说就是调用第三方开源库JSONModel可以简化相互转化这一流程当我们向服务器发送网络请求之后,通过JSONModel把请求下来的json数据解析成我们自定义的继承于JSONModel的XXXModel类,进而转化成我们熟悉的数据结构赋值给对象,供我们进行访问JSONModel不仅使用非常方便,而且还会检查JSON数据的完整性,如果JSON数据不完整会返回nilJSONModel还提供了基本的数据类型转换,比如服务器错将数字传成字符串的话,JSONModel也会帮你转换成你期望的类型。原创 2023-11-13 22:47:01 · 1102 阅读 · 0 评论 -
【Objective-C】对深浅拷贝的理解
实现对自定义对象的拷贝,需要遵守NSCopying 协议,并实现方法。如果要浅拷贝,方法就返回当前对象如果要深拷贝,方法中就创建新对象,并给希望拷贝的属性赋值,然后将其返回。如果有嵌套的子模型也需要深拷贝,那么**子模型也需符合NSCopying 协议且在属性赋值时调用子模型的copy方法,以此类推。@end@end@end//调用了嵌套子模型Dog的copy方法进行深拷贝@end如果自定义对象支持可变拷贝和不可变拷贝,那么还需要遵守。原创 2023-09-16 18:43:49 · 142 阅读 · 0 评论 -
【iOS】将网络请求封装在一个单例类Manager中(AFNetworking、JSONModel)
项目开发中会请求大量不同的API,若将网络请求三板斧直接写在Controller中会代码十分冗杂,干脆直接将和JSONModel封装到一个全局的Manager单例类中,在Manager类中进行网络请求和数据解析。可以将不同的请求分别写成不同的单例方法,而且代码简单易懂原创 2023-11-14 11:27:27 · 732 阅读 · 0 评论 -
【iOS】属性传值、代理传值(委托)、通知传值、KVO传值、Block传值、单例传值
在开发中经常需要不同页面间进行信息传递,经过了解,页面间传值有八大传值方式,本篇文章中我们就了解并比较比较常用的几种传值方式(五大传值、单例传值)运行结果图示放在每个传值方法的结尾!本篇文章详细地介绍了开发过程中常用的页面传值方式! 😶🌫️原创 2023-10-20 00:25:56 · 348 阅读 · 0 评论 -
【iOS】UITableView总结(Cell的复用原理、自定义Cell、UITableViewCell协议方法)
列表的特点:UITableViewDataSourceUITableView作为视图,只负责展示,协助管理,不管理数据需要开发者为UITableView提供展示所需要的数据及Cell通过delegate的模式,开发者需要实现UITableViewDataSourceUITableViewCell默认提供的样式都是常用的cell布局当你需要66个cell来展示数据时,而可视区至多显示13个cell,开始cell为空,系统会先创建13个cell并设置自定义的做标记,滑动tableView,滑出可视区的cell原创 2023-10-20 00:46:16 · 1014 阅读 · 0 评论 -
【Objective-C】浅析Block及其捕获机制
Block (块),封装了函数调用以及调用环境的 OC 对象,Objective-C闭包(可以在内部访问外部的值),相当于C语言的函数指针,把一个函数写在一个函数内部,而OC并没有函数(方法)嵌套这一语法作用域的原因,全局变量哪里都可以直接访问,所以不用捕获;局部变量,外部不能直接访问,所以需要捕获;auto 类型的局部变量可能会销毁,其内存会消失,block 将来执行代码的时候不可能再去访问那块内存,所以捕获其值;static 变量会一直保存在内存中, 所以捕获其地址即可原创 2023-10-20 00:23:15 · 4745 阅读 · 0 评论 -
【iOS】自定义Cell
大部分的情况下,我们都会选择自定义Cell的方式来加载列表中的每一个数据,因为大部分情况下是无法满足我们多样化的需求的自定义Cell我们就用注册的方式进行cell的复用第一步、创建tableView并设置代理第二步、创建自定义cell类MyCell(继承于UITableViewCell)self.majorLabel.text = @"自定义Title";控件的布局通常要放在中,这样可以保证在。原创 2023-10-20 00:45:40 · 184 阅读 · 0 评论 -
【iOS】ViewController生命周期
了解ViewController生命周期之前,我们首先认识一下ViewController的结构了解了的生命周期后,就可以在合适的时机(重写的方法里)根据需求自定义想要实现的交互事件、代码逻辑。原创 2023-10-20 09:36:28 · 635 阅读 · 0 评论 -
【iOS】push&pop和present&dismiss的区别及混用
在开发过程中,我们有时会遇到界面切换问题,有两种基本的方式可以实现界面切换:push和present都可以推出新的界面先在window上加一个navigation,然后以VCRoot作为navigation的根视图进行导航接下来在VCRoot界面使用push和pop切换其他界面present与dismiss对应现在新版本的present并没有将新视图显示完全,因此可以拖拽新视图返回上一层级要想将present来的视图显示完全,占满整个屏幕,可以使用以下代码:present和pop不同点从上原创 2023-09-17 15:10:07 · 266 阅读 · 0 评论 -
【Objective-C】面向对象(下)
OC学习(OC的包装类、处理对象、类别与扩展、协议与委托)原创 2023-05-24 21:20:58 · 330 阅读 · 0 评论 -
【iOS】基础组件及UI布局—续
到这里终于是完成了实验室布置的UI学习任务,在UIKit中还有许多待学习的控件以及高级的布局、协议。由于本篇以及上一片文章中一些控件的初始化方式已是陈年老旧,本人将在以后的学习中将不断更新UI控件的使用并灵活使用苹果官网的文档进行查阅摒弃某些已经包浆的UI使用方案。原创 2023-08-10 20:49:16 · 291 阅读 · 0 评论 -
【Objective-C】Foundatio框架详解
OC学习,NS这个前缀来源于乔布斯Jobs当年被Apple公司股东开除后,创立的NextStep公司的缩写,ta也是cocoa框架的发源地原创 2023-05-28 13:29:10 · 210 阅读 · 0 评论 -
【Objective-C】OC中的数据类型
OC学习,归纳出OC与C语言中有关数据类型不一样的点原创 2023-05-03 18:35:59 · 295 阅读 · 0 评论 -
【iOS】基础组件及UI布局
UI学习原创 2023-06-04 19:49:34 · 601 阅读 · 0 评论 -
【Objective-C】浅析OC中的属性关键字
复习了常见的属性关键字 主要是内存管理部分 简单了解类属性class原创 2023-09-06 17:19:30 · 406 阅读 · 0 评论 -
【iOS】CocoaPods的安装及其使用方法
对CocoaPods安装及其使用方法的学习CocoaPods到底是个什么东东捏?原创 2023-09-04 22:23:41 · 950 阅读 · 0 评论 -
【Objective-C】面向对象(上)
OC学习(类和对象、方法解析、成员变量、隐藏和封装、对象初始化、类的继承、多态)原创 2023-05-21 19:24:27 · 630 阅读 · 0 评论 -
【Objective-C】OC前置知识
认识了OC基本语法框架中#import与#include的区别,autorelease自动释放池的作用,面向对象与面向过程的区别原创 2023-05-03 16:19:36 · 188 阅读 · 0 评论 -
【iOS】Masonry库的基本使用
Masonry库的简单调用及基本属性原创 2023-09-05 19:58:45 · 542 阅读 · 0 评论