- 博客(8)
- 收藏
- 关注
原创 IOS中的锁
##前言 在学习ios中的锁之前,我们先理了解线程安全的概念。 ####线程安全(thread safety) 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。 我们之前声明属性时学习过使用atomic与nonatomic,一个原子性与一个非原子性,我们一般都是使用非原子性,但却不知道这两个
2021-04-12 22:44:50
203
原创 UICollectionView(集合视图) 的简单使用
UICollectionViews是一个集合视图与uitableview使用方法十分相似,但是展示的效果却并不相同,uitableview是一行行显示且可以分组,但是uicollectionView是可以以抽屉的形式显示,这之中分为多个节,每个节之中有多个单元格,这个控件十分的有用,可以用来做出表情包选择的效果,还可以做出购物车添加效果等等。 基本使用代码如下 //1、创建流式布局(从上到下,从左到右的布局) UICollectionViewFlowLayout *layout = [[UIC
2020-09-05 20:29:01
319
原创 xcode 添加全局断点以后崩溃,libc abi.dylib`__cxa_throw: -> 0x111fdc089 < 0>: pushq %rbp
添加全局断点以后运行程序直接崩溃并且跳到libc abi.dylib`__cxa_throw: -> 0x111fdc089 < 0>: pushq %rbp,这时候可以尝试修改全局断点的设置如图 出现这种问题的原因我推测可能是框架中的非oc语言出现了问题才导致崩溃。 ...
2020-08-01 12:21:33
299
原创 ios 九宫格图片的展示实现
今天分享的是多图添加的代码,像微博和微信那些9图显示有一个问题就是每个微博或朋友圈的图片显示数量是不定的,这样我们就不能一开始就写好imageView的位置和数量,要先知道有多少个图片,再根据图片的数量去init imageView,实现效果大概如下 代码如下 - (void)addImages{ NSArray*imageArray = [[NSArrayalloc]init];//储存图片的数组 NSIntegerimageCount =0;//已添加图片 //图片的宽高
2020-08-01 12:20:23
825
原创 UItableViewControl 的弊处
这个控制器虽然对于uitableview来说方便许多,直接设置好了datasource和其他方法,我们只需要填上就可以,但是这个控制器有一个非常大的缺点就是,tableview的位置无法改变,假如我想在tableview的上方弄一个滚动标签条,tableview的位置是无法改变的,这代表tableview上第一行的内容一定会被覆盖,这就是无法做到我们想要的效果,但是如果硬要加上去东西,其实是有两个方法的,第一个就是给控制器加上导航控制器,那么我们上面的一部分就是导航条,我们就可以在这个导航条上面加我们所需要
2020-08-01 12:19:37
97
原创 构建之法(第六、七章)的学习笔记
六、敏捷流程 该流程以用户为核心,不断迭代,循序渐进的开发方式,力求将项目分割成多个经过测试,可集成,可运行的的小部分。争取再很短的时间里开发出核心功能在后期不断更新完善。 敏捷流程的步骤: 第一步:找出完成产品需要做的事情—Product Back-log。Backlog翻译成“积压 的工作”、“待解决的问题”、“产品订单”,都可以。产品负责人主导大家对于这个 Backlog进行增/删/改的工作。每一项工作的时间估计单位为“天”。 第二步:决定当前的冲刺(Sprint)需要解决的事情—Sprint
2020-08-01 12:18:55
139
原创 构建之法(第四、五章)的学习笔记
第四章 一、代码规范 1、缩进用4个空格比较好,因为tab有时候在不同的情况下会显示不同的长度,影响阅读。 2、不要把多条语句放在一行。 3、@public和@private 前应该用一个空格来缩进 4、命名,不要随意命名,变量命名尽量能让程序员看出变量的类型,由多个单词组成的变量不同单词的首字母要大写。 5、注释,不是注释该代码怎么做的,而是应该注释该代码有什么用。 6、函数,只做一件事,并且做好这件事 二、代码复审 第五章 本章主要讲了团队协作的模式流程,各种流程的利弊。 开发流程有以下几种模式:
2020-08-01 12:18:17
291
原创 AFNetworking的基本使用
AFNetworking是一个功能非常强大的框架,主要是用于网络请求,把复杂的原生代码封装好,我们只需要简单的几步就可以完成网络请求。 首先是get和post请求 //get 请求 //创建会话对象 AFHTTPSessionManager *Manager = [AFHTTPSessionManager manager]; //字典传递网址问号以后的参数 NSDictionary *dict = [[NSDictionary alloc]init]; //2 发送ge
2020-08-01 12:16:53
2835
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人