摘要:
1、NSObject的多线程方法(用的时候要用@autoreleasepool{}包起来)开启后台执行任务的方法:- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg苹果底层允许使用performSelectorI... 阅读全文
摘要:
1、概述单例模式是一种常用的软件设计模式,通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望系统中某个类的对象只能存在一个,单例模式是最好的解决方案,iOS中最常见的单例就是UIApplication 。应用场景:音频播放,背景音乐!... 阅读全文
摘要:
1、概述(1) Run Loop提供了一种异步执行代码的机制,不能并行执行任务。(2) 在主队列中,Main Run Loop直接配合任务的执行,负责处理UI事件、计时器,以及其它内核相关事件。(3) Run Loop的主要目的是保证程序执行的线程不会被系统终止。Run Loop的工作特点:(1) ... 阅读全文
摘要:
1、简介(1) NSOperationQueue(操作队列)是由GCD提供的队列模型的Cocoa抽象,是一套Objective-C的API,为了使并发(多线程)编程变得更加简单,但效率比GCD略低。在实际开发中NSOperationQueue是首选。(2) GCD提供了更加底层的控制,而操作队列则在... 阅读全文
摘要:
1、多线程概念进程正在进行中的程序被称为进程,负责程序运行的内存分配。每一个进程都有自己独立的虚拟内存空间。线程线程是进程中一个独立的执行路径(控制单元)一个进程中至少包含一条线程,即主线程可以将耗时的执行路径(如:网络请求)放在其他线程中执行创建线程的目的就是为了开启一条新的执行路径,运行指定的代... 阅读全文
摘要:
1、定义(1) Block是OC中的一种数据类型,在iOS开发中被广泛使用(2) ^是Block的特有标记(3) Block的实现代码包含在{}之间(4) 大多情况下,以内联inline函数的方式被定义和使用(5) Block与C语言的函数指针有些相似,但使用起来更加灵活例如:void(^demoB... 阅读全文
摘要:
1、概述Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对应的框架。特别注意的是核心动画的动画效果只是“假象”,产生动画的那个view实际上并未发生任何变化。开发步骤:第一步... 阅读全文
摘要:
1、 概述在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView,其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),... 阅读全文
摘要:
1、iOS中的事件在用户使用app过程中,会产生各种各样的事件,iOS中的事件可以分为3大类型:2、响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”,UIApplication、UIViewController、UIVi... 阅读全文
摘要:
JSON解析步骤:- (NSArray *)products{ if (_products == nil) {//第一步:获取JSON文件的路径:NSString *path = [[NSBundle mainBundle]pathForResource:@"products.json" ofTyp... 阅读全文