移动开发
KittyHalo
天才只是我的副业,我的专业叫牛逼!!!
展开
-
多线程之NSThread
// 创建线程 (一旦启动,就调用self的run方法) object : 用于传参,比如,路径(下载资源的时候) NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(run) object:nil]; // 启动线程(执行完毕会自动销毁线...原创 2018-08-03 19:36:35 · 124 阅读 · 0 评论 -
分类(category)和扩展(Extension)
分类(category)和扩展(Extension)1、分类 (Category)它是表示一个指向分类的结构体的指针。原则上它只能增加方法,不能增加成员(实例)变量。具体原因看源码组成:Category 是表示一个指向分类的结构体的指针,其定义如下:typedef struct objc_category *Category;struct objc_category {char *c...原创 2019-05-07 17:43:52 · 369 阅读 · 0 评论 -
数据结构与算法之二分查找
二分查找法作为一种常见的查找方法,将原本是线性时间提升到了对数时间范围,大大缩短了搜索时间,但它有一个前提,就是必须在有序数据中进行查找。二分查找过程如下:1. 将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;2. 否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表;3. 否则进一步查找后一子表。4. 重复以上...原创 2019-05-21 15:00:53 · 197 阅读 · 0 评论 -
iOS内存分区
内存分区:(堆区,栈区,静态区,常量区,代码区)1、栈区 (heap)存放的局部变量、先进后出、一旦出了作用域就会被销毁;函数跳转地址,现场保护等;程序猿不需要管理栈区变量的内存;-栈区地址从高到低分配;2、堆区(stack)堆区的内存分配使用的是alloc;需要程序猿管理内存;ARC的内存的管理,是编译器再便宜的时候自动添加 retain、release、autorelease...原创 2019-05-16 16:25:37 · 170 阅读 · 0 评论 -
isEqual ,isEqualToString , == 三者的区别
isEqual ,isEqualToString , == 三者的区别isEqual: 首先判断两个对象是否类型一致, 在判断具体内容是否一致,如果类型不同直接return NO.如先判断是否都是 NSString,在判断string的内容。isEqualToString 判断两个字符串的值是否相同== 判断两个指针是否指向同一个对象。 例如: NSString *string1 = ...原创 2019-05-16 16:27:07 · 730 阅读 · 0 评论 -
static 和extern 的区别
static 的作用; 1、修饰局部变量; *延长这个局部变量的生命周期;只要程序运行,局部变量就会一直存在;用static修饰的代码,只会在程序一启动就会执行,以后就不会在执行; 2、修饰全局变量: * 只会修改全部变量的作用,表示只能在当前文件内使用extern 的作用 1、声明一个全局变量,不能定义变量; 注意:extern修饰的变量不能初始化...原创 2019-05-16 16:29:05 · 229 阅读 · 0 评论 -
多线程之GCD
1、什么是GCD全称: Grand Central Dispatch纯C语言,提供非常多强大的函数多核并行运算,不叫多线程,它只是完成了多线程的封装和使用2、GCD的优点:GCD 可用于多核的并行运算;GCD 会自动利用更多的 CPU 内核(比如双核、四核);GCD 会自动管理线程的生命周期(创建线程、调度任务、销毁线程);程序员只需要告诉 GCD; 想要执行什么任务,不需要...原创 2019-05-16 17:28:13 · 151 阅读 · 0 评论 -
条件编译
指令 用途 # 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已经定义,则编译下面代码 #ifndef ...原创 2019-05-16 17:44:52 · 132 阅读 · 0 评论