自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 响应者链条

一.什么是响应者事件只有继承了UIResponser的对象,才能接收并处理事件,成为响应者对象UIApplication,UIView,UIViewController都是继承自UIResponser二.什么是响应者链条1.响应者链条是由多个响应者对象链接起来的链条2.利用响应者链条,能让多个控件处理同一个触摸事件三.上一个响应者1.如果当前的这个vie

2015-12-26 19:42:40 239

原创 支付宝支付

一.大致步骤1.向支付宝申请,与支付宝签约,获得商户ID(partnerId)和账号ID(sellerId)2.下载相应地公钥私钥文件(加密签名用)3.下载支付宝SDK4.生成订单信息,签名加密5.调用支付宝客户端,由支付宝客户端跟支付宝安全服务器打交道6.支付完毕后,支付宝客户端会自动回到原来的应用程序(根据回调地址)7.在原来的应用中显示支付结果给用户看

2015-12-21 16:18:34 406

原创 深拷贝和浅拷贝的区别

一.深拷贝源对象和副本对象是不同的两个对象源对象引用计数不变,副本对象计数器为1(因为是新产生的)至少有一层是对象复制二.浅拷贝源对象和副本对象是同一个对象源对象(副本对象)引用计数器+1,相当于做一次retain操作本质:没有产生新的对象三.完全复制对于被复制的对象每一层都是对象复制四.哪些是深拷贝,哪些是浅拷贝reta

2015-12-21 11:41:38 3180

原创 移除通知

一.为什么要移除通知通知中心不会保留(retain)监听器对象,在通知中心注册过得对象,必须在该对象释放前移除通知,否则,当响应的通知再次出现时,通知中心仍然向该监听器发送消息,因为,响应的监听器对象已经被释放,所以可能会导致应用崩溃二.UIDevice通知 UIDevice类提供了一个单例对象, 它代表着设备, 通过它可以获得一些设备相关的信息, 比如电池电量

2015-12-20 13:15:42 1184

原创 SDWebImage原理

1.SDWebImageManager根据URL开始处理图片2. SDImageCache 从缓存查找图片是否已经下载3.先从内存图片缓存查找是否有图片,如果内存中已经有图片缓存,SDImageCacheDelegate 回调 imageCache:didFindImage:forKey:userInfo: 到 SDWebImageManager。4.SDWebImageManager

2015-12-16 23:40:29 282

原创 Socket和HTTP的区别

1.HTTP是一种协议,Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已。2.http连接:http连接就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响应后连接即会断掉;socket连接:socket连接就

2015-12-16 23:21:07 572

转载 解析char *p与char p[]

主要解析的问题:问题1:#include "stdio.h"char *get_string_1(){    char p[] = "hello world!";    return p;}char *get_string_2(){    char *p = "hello world!";    return p;}int main(){

2015-12-16 19:04:43 282

转载 NSString* testObject = [[NSData alloc] init];testObject 在编译时和运行时分别是什么类型的对象?

首先,声明 NSString *testObject 是告诉编译器,testObject是一个指向某个Objective-C对象的指针。因为不管指向的是什么类型的对象,一个指针所占的内存空间都是固定的,所以这里声明成任何类型的对象,最终生成的可执行代码都是没有区别的。这里限定了NSString只不过是告诉编译器,请把testObject当做一个NSString来检查,如果后面调用了非NSStrin

2015-12-16 18:48:28 316

原创 对autorelease的理解

一.对于autorelease pool本身,会在什么条件下会被释放1.手动释放Autorelease pool2)Runloop结束后自动释放二.对于autorelease pool内部的对象,会在什么条件下被释放在retain == 0的时候释放注意:autorelease结束,只是对释放池中的对象release一次,对象并不一定会被释放三.autore

2015-12-16 18:30:49 331

原创 #import和@class的区别

引用一个类可以通过#import引入,也可以通过@class引入,这两种方式的区别在于一.使用方法1)#import 方式会包含被引用类的所有信息,包括被引用类的变量和方法;@class 方式只是告诉 编译器在A.h 文件中 B *b 只是类的声明,具体这个类里有什么信息,这里不需要知道,等实现文 件中真正要用到时,才会真正去查看B 类中信息;2

2015-12-16 18:17:40 283

原创 常用加密方式

一.常用加密方式的介绍常用的加密方式有Base64,MD5,MD5加盐,时间戳密码二.加密方式介绍1.base64base64 基本能够达到安全要求,但是,base64能够逆运算,非常不安全!原本是 8个bit一组表示数据,改为 6个bit一组表示数据,不足的部分补零,每两个0 用 一个 = 表示.用base64编码之后,数据长度会变

2015-12-16 15:05:58 908

原创 UIViewController的生命周期

一.UIViewController的作用1.对内管理与之关联的view,对外跟其他ViewController通信和协调loadView和viewDidLoad的一个区别:loadView时还没有view,而viewDidLoad时,view已经创建好了2.ViewController对View的加载过程1)先判断子类是否重写了loadView,如果有直接调用,之

2015-12-16 12:48:07 348

原创 堆和栈的区别

一.管理方式堆:释放工作由程序员控制,容易产生memory leak栈:由编译器自动管理,无需程序员管理二.数据结构堆:堆是向高地址扩展的数据结构,是不连续的内存区域。系统是由链表来存储的空闲内存地址的栈:是向低地址扩展的数据结构,是一块连续的内存的区域三.碎片问题堆:频繁的new/delegate势必会造成内存空间的不连续,从而造成大量的碎片,

2015-12-16 10:34:22 268

转载 点击MPMoviePlayerController播放视频时,出现一个黑屏闪屏的现象

当点击某按钮播放视频时,如果在按钮触发函数时alloc MPMoviePlayerController对象,同时加载资源文件,因为加载资源文件也需要时间,这时会有一个短暂的黑色闪屏,这点体验很不好,有一个好的解决方案是,提前alloc预加载好该MoviePlayer对象,点击按钮时直接调用play。

2015-12-16 10:31:09 457

原创 iOS9新特性

iOS9新特性

2015-12-15 22:18:43 369

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除