10 2015 档案
摘要:单例的设计模式:什么是单例设计模式:它可以保证某个类创建出来的对象永远只有一个。作用(为什么要用):1,节省内存开销。2,如果有一些数据,整个程序中都用得上,只需要使用同一份资源即可(保证大家访问的数据是相同的,一致的)。eg,[UIApplication sharedApplication];[N...
阅读全文
摘要:怎么保证多人开发进行内存泄漏的检查:1,使用Analyze进行代码的静态分析。在非ARC下,2,为避免不必要的麻烦多人开发时尽量使用ARC。
阅读全文
摘要:[self addChildViewController:self.firstVc];//在导航控制器中, 添加父子关系
阅读全文
摘要:FMDB:OC封装C语言的SQlite,编写SQl语句。CoreData:OC封装C语言的SQlite,不用编写SQl语句,自动根据对象类型和属性名生成对应的SQl语句。CoreData用[context save:p] ;怎么解决缓存池满的问题:1,优先移除使用次数比较少的对象。2,优先移除缓存时...
阅读全文
摘要:KVO:对属性进行监听。HMPerson *p =[[HMPerson alloc]init];@property(nonatomic,strong)HMPerson *p;self.p = p;//让self不要再监听age的属性了-(void)dealloc{[self.p removeObse...
阅读全文
摘要:NSUserDefaults简介及使用NSUserDefaults类提供了一个与默认系统进行交互的编程接口。NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,配置数据等等。默认系统允许应用程序自定义它的行为去迎合用户的喜好。你可以在程序运行的时候从用户默认的数据库中读取程序的设...
阅读全文
摘要:远程推送通知,又称为APNs(Apple Push Notification Service).所有的苹果设备,在联网状态下,都会与苹果的服务器建立长链接。什么是长链接?只要联网,就一直建立连接。长链接的作用:1,时间校准。2,系统升级。3,查找我的iPhone。长链接的好处:1,数据传输速度快2,...
阅读全文
摘要:推送通知的使用细节:1,发出推送通知时,如果程序正运行在前台,那么推送通知就不会被呈现出来。2,点击推送通知后,默认会自动打开发出推送通知的app。3,不管app打开还是关闭,推送通知都能如期发出。本地推送通知的使用场景:常用来定时提醒用户完成一些任务,比如清理垃圾,记账,买衣服,看电影,玩游戏。/...
阅读全文
摘要:第三方支付平台可以协调客户,商户,银联三者关系的方便平台。使用支付宝进行一个完整的支付功能,大致有以下步骤:(红色是做一次,绿色每次都做)1,向支付宝申请,与支付宝签约,获得商户ID(partner) 和帐号ID(seller)2,下载相应的公钥私钥文件(加密签名用)3,下载支付宝SDK4,生成订单...
阅读全文
摘要:^写在[]外面表示是以什么开头,^写在[]里面表示这个的反意思。$表示结尾。(HM补充里有正则表达式的库)[3578]表示或3,或5,或7,或8。\\d表示数字。{9}表示9位数。\\d*(0~N)个\\s是空格,^\\s不是空格match(@"17977775555", @"^1[3578]\\d...
阅读全文
摘要:什么是copy?Copy的字面意思是“复制”,“拷贝”,是一个产生副本的过程。作用:利用一个源对象产生一个副本对象。特点:1,修改源对象的属性和行为,不会影响副本对象。2,修改副本对象的属性和行为,不会影响源对象。如何使用copy功能一个对象可以调用copy或者mutableCopy方法来创建一个副...
阅读全文
摘要:NSFileManager是用来管理文件系统的。它可以用来进行常见的文件\文件夹操作NSFileManager使用了单例模式使用defaultManagr方法可以获得那个单例对象
阅读全文
摘要:ARC的判断原则: 只要还有一个强指针变量指向对象,对象就会保存在内存中强指针:默认情况所有指针变量都是强指针被_strong修饰的指针弱指针:被_weak修饰的指针@property(nonatomic,stong)Person *person;
阅读全文
摘要:autorelease方法的基本使用给对象发送一条autorelease消息,会将对象放到一个自动释放池中当自动释放池被销毁时,会对池子里面的所有对象做一次release操作。会返回对象本身调用完autorelease方法后,对象的计数器不变autorelease的好处:不用再关心对象释放的时间。不...
阅读全文
摘要:@class:作用:可以简单地引用一个类。eg;@class Dog;仅仅告诉编译器:Dog是一个类;并不会包含Dog这个类的所有内容。具体使用:在.h文件中使用@class引用一个类。在.m文件中使用#import包含这个类的.h文件#import与@class的区别:1.作用上的区别:#impo...
阅读全文
摘要:想使用某个对象,就得对这个对象做一次retain操作,不想再使用某个对像的时候,对这个对象做一次release。控制set方法的内存管理retain : release旧值,retain新值(用于OC对象)assign : 直接赋值,不做任何内存管理(默认,用于非OC对象类型)copy : re...
阅读全文
摘要:移动设备的内存及其有限,每个app所占的内存是有限制的下列行为都会增加一个app的内存占用1,创建一个OC对象2,定义一个变量3,调用一个函数或者方法当app所占用的内存比较多时,系统会发出内存警告,这时得回收一些不需要再使用的空间。比如回收一些不需要使用的对象,变量等。如果app占用内存过大:系统...
阅读全文
摘要:基本概念:1,客户端(Client):移动应用(iOS,android等应用)2,服务器(Server):为客户端提供服务,提供数据,提供资源的机器。3,请求(Request):客户端向服务器索取数据的一种行为。4,响应(Response):服务器对客户端的请求做出的反应,一般指返回数据给客户端。服...
阅读全文
摘要:Block是苹果官方特别推荐使用的数据类型,应用场景比较广泛,主要应用在:Block是放在栈内存里的,只要block没有进行copy操作 它就在栈里面。如果对block进行copy操作,它就会在堆里面。如果block存储于栈空间,不会对block内部所用到的对象产生强引用。如果block存储于堆空间...
阅读全文
摘要:NSOperation的作用配合使用NSOperation(任务)和NSOperationQueue(队列)也能实现多线程编程。NSOperation和NSOperationQueue实现多线程的具体步骤1,先将需要执行的操作封装到一个NSOperation对象中2,然后将NSOperation对象...
阅读全文
摘要:多线程1.NSThread1> 开线程的几种方式* 先创建,后启动NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];[thread start];* 直接启动[NS...
阅读全文
摘要:举例子:创建多个图片在子线程上下载,下载完成后在返回到主线程上:
阅读全文