Run Loop是什么 RunLoop顾名思义,是运行循环。它跟线程是一一对应的,每一个线程都有一个RunLoop,在需要的时候创建。RunLoop的作用很简单,就是保持线程...
Run Loop是什么 RunLoop顾名思义,是运行循环。它跟线程是一一对应的,每一个线程都有一个RunLoop,在需要的时候创建。RunLoop的作用很简单,就是保持线程...
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中...
还是老样子,先翻译KVC** KVC:Key Value Coding (键值编码)** 作用: KVC可以用来访问和设置实例变量的值( key为属性名) KVC很暴力,可以...
一、CPU和GPU 的介绍 1.1、在屏幕成像的过程中,CPU和GPU起着至关重要的 作用CPU(Central Processing Unit,中央处理器),对象的创建和...
Runtime是OC里面非常重要的一个概念,它是OC的底层实现,也正是因为Runtime,OC成为一个动态语言,并且拥有了面向对象的能力。这篇文章,将详细说明Runtime的...
本文首发于我的个人博客:「程序员充电站」[https://itcharge.cn]文章链接:「传送门」[https://itcharge.cn/ios-memory-mana...
开发iOS应用,解决Crash问题始终是一个难题。Crash分为两种,一种是由EXC_BAD_ACCESS引起的,原因是访问了不属于本进程的内存地址,有可能是访问已被释放的内...
NSIndexSet类代表一个不可变的独特的无符号整数的集合,称为索引,因为使用它们的方式。这个集合被称为索引集。你不应该使用索引集存储任意集合的整数值,因为索引集按索引排序...
nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中...
在Protocol或者Category中是不可以添加属性,但是还是看到这样写的代码。 完整的属性包括成员变量和setter、getter两个方法,在Protocol或者Cat...
weak与assign的唯一区别在于,当指向的对象被释放掉之后,weak指针会自动置为nil。而assign指针会指向一个无效的地址。当通过指针去访问一个无效地址时,程序很可...
在iOS中我们会经常遇到frame和bounds,这两个概念很相似,但是也有区别。frame还好理解,但是bounds就比较容易迷惑人。我们通过实例来讲解下bounds的概念...
一、各目录详解 1.Documents:只有用户生成的文件、应用程序不能重新创建的文件,应该保存在 /Documents 目录下面,并将通过iCloud自动备份。 2.Lib...
iOS 应用程序一般都是由自己编写的代码和系统框架(system frameworks)组成,系统框架提供一些基本infrastructure给所有 app 来运行,而你提...
下面的程序会输出什么? 输出结果 在网上搜索了一下,一般人给出的答案是:当字符串长度小于10时,字符串是保存在常量区,没有引用计数。如果长度大于等于10呢,就会被复制到堆去,...
首先声明一点:子线程里面是可以更新UI的。 之所以说子线程不能操作UI是因为UIKit不是线程安全的。UI操作涉及到渲染访问各种View对象的属性,如果异步操作下会存在读写问...
随着项目的不断迭代,普通的文本属性已经无法满足需求,就需要我们学习和使用更加灵活的富文本。AttributedString 可以分为 NSAttributedString 和...
1、For In循环这也是最常用的一个方法。如果需要知道数组下标,用普通的For循环比较方便。2、利用enumerateObjectsUsingBlock进行遍历这种遍历方法...
最近在github上查看老外的代码时,发现老外遍历时都爱用 -(void)enumerateObjectsUsingBlock:(void (NS_NOESCAPE ^)(O...
在for循环中可以使用break、continue等关键字控制循环。 在使用enumerateObjectsUsingBlock遍历的时候,怎样跳出循环? 有的同学说 *st...