每一个不曾起舞的日子都是对生命的辜负。
iOS常见的算法(学习中) 冒泡算法 选择排序 先从未排序的的序列中找到最小(大)值,存放到排序的起始位置 再从剩余未排序的元素中寻找最大(小)值,存放到已排序的末尾 循环,直到结束。 快速排序 以第一个数为基数 从右边开始,比基数大放右边,比基数小放左边 接着从左边开始,比基数大放右边比基数小放左边 再判断比较最左边和最右边两个数变化后的位置 始终保持小的在左边大的在右边 递归 归并排序 二分法查找排序 二叉树遍历 时间复
前提 之前写图片轮播的时候一直用的是(N+2)的方式添加图片,但是想到如果我要添加很多很多图片的话,那就gg了。 现在可以有一种只添加3个imageView的方式就可以实现图片轮播的方式,加上NSTimer这就更完美了,可以无限循环的哦。(此时我想到了面试一般会问到Runloop是干嘛的!此时结合一下,我就可以感觉到了O(∩_∩)O~) 加载ScrollView 定义3个imageView来承载图片 加载Page
其实看了一些别人讲的教程,对Runtime的认识还是很模糊,希望之后多实践可以加深了解 定义 实现Objective-C语言的C库 对象可以是C语言中的结构体表示 方法可以用C函数实现 最终执行代码 如果执行[object doSomething];时 首先会向消息接受者objec发送一条消息doSomething; Runtime会根据消息接收者是否能响应做出不同的反应 Runtime中的消息 message(消息)
基础累计 经典命名法则: 匈牙利命名法: 该命名法则就是在每个变量名前面加上若干表示数据类型的字符。 基本原则就是:变量名 = 属性 + 类型 + 对象描述 比如以i开头的属性表示int类型 驼峰命名法 混合使用大小写字母开构成变量和函数名字,首字母小写 帕斯卡命名法 首字母大写,其它同驼峰 命名规则 变量名首字母必须为字母、下划线、@、或者$开始 变量名只能是字母,数字,下划线、@组合,不能有空格 不能用编程语言的
SDWebImage(转) 功能 扩展UIImageView,UIButton,MKAnnotationView,增加网络图片与缓存管理 一个异步的图片管理器 一个 异步+磁盘 图片缓存,拥有自动的缓存过期处理机制 支持后台图片解压缩处理 确保同一个URL的图片不被下载多次 确保虚假的URL不会被反复下载 确保下载与缓存时,主线程不被阻塞 使用GCD与ARC 组织架构 SDWebImageDownloader负责维持图片的下载队
赴美带薪实践 你会向陌生人say hello,say morning么?你会在上下bus的时候向老司机们say thank you或者have a good day么?你会在行走的时候随时向擦身而过的人say excuse me 或者I‘m sorry么?你会在吃饭的时候向你的waiter说无数个Thank you very much并且付账的时候给她们很多小费么? 在中国是不是都不会的,因为大家不讲英语对不对!嘿嘿
直接跳转——控件拖拽(基于View创建) push modal:如果A—>B此模式,无法自动返回A,需要额外写代码 条件跳转法(performSegueWithIdentifier)——只有在满足特定条件下,才跳转到下一个(基于ViewControl创建) 手动代码跳转法——Segue不存在情况下,也可以跳转到指定的ViewControl 设置identifier 逆向跳转——即A—>B后,再B—>A
概述 运行循环 由do-while循环实现 作用 保证程序的持续运行 处理APP的各种事件(滑动,定时器,selector) 节省CPU资源,提高程序性能 Foundation NSRunLoop(OC语言) Core Foundation CFRunLoopRef(C语言) 相关类:没有以下类,不会循环 CFRunLoopModeRef 代表了RunLoop的运行模式 一个RunLoop可以包含若干个Mode,每
配合使用NSOperation和NSOperationQueue也可以实现多线程 先将需要执行的操作封装到一个NSOperation对象中 将NSOperation对象添加到一个NSOperationQueue对象中 系统会自动将NSOperationQueue中的NSOperation取出来 将取出的NSOperation封装的操作放到一条线程中去执行 抽象类,并不具有封装操作的能力,必须使用它的子类: NSInvocatio
多线程及其相关的概念 进程 进程是指在系统正在运行的一个应用程序 比如同时打开微信、QQ,系统就会分别启动两个进程 每个进程之间是独立的,且运行在其专用并受保护的内存空间内 线程 线程是进程的基本执行单元,一个进程想要执行任务,必须的有线程(一个进程至少有一个线程) 比如qq进行文字聊天,使用微信进行视频聊天,都需要在线程中执行 线程的串行 如果一个线程中执行多个任务,那么只能一个一个的按顺序执行,也就是说,在同一时间