自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(49)
  • 收藏
  • 关注

转载 3 - 多用字面量语法,少用与之等价的方法

字面量语法涉及到的类型有:NSString,NSNumber,NSArray,NSDictionary现在先不管什么叫字面量语法,先来看一下怎么生成一个NSString类型对象并赋值到变量上:NSString *someString = @"Jk_Chan";可以看出这里的语法,直接使用@""便可以生成一个NSString对象,而不需要调用new或者alloc与init方...

2016-03-14 15:09:00 106

转载 2 - 在类的头文件中尽量少引入其它的头文件

为什么在类的头文件要尽量少的引入其它头文件呢?首先是为了提高封装性,如果引入了其它头文件,那么它们就必须得公开才行,同样的,既然不必要提供的头文件公开了,别人也可以在其它地方引入这些头文件以及调用它们的方法。再有一个就是能提高项目的编译速度,为什么呢?因为编译器在编译文件的时候,如果引入了其它文件的头文件,那么编译器也会把所引入的各个头文件给编译一遍,明显得花费更多的编译时间。...

2016-03-14 14:40:00 157

转载 1-了解Objective - C语言的起源

先简单的说一下:消息结构和函数调用这两者之间的区别同样是调用一个对象的方法,//Objective-CObject *obj = [Object new];[obj performWith:parameter1 and:parameter2];//C++Object *obj = new Object;obj->perform(parameter1, p...

2016-03-14 00:48:00 110

转载 UINavigationController

验证证书的API(相关API在Security Framework中): 验证流程: 1.获取需要验证信任的对象(Trust Object,证书发布机构),不同的应用场景下获取的方式都不一样,对于NSURLConnection来说,是从: delegate回调方法:-connection:willSendRequestForAuthenticationChallenge: 的...

2016-03-13 14:40:00 86

转载 HTTPS

验证证书的API(相关API在Security Framework中): 验证流程: 1.获取需要验证信任的对象(Trust Object,证书发布机构),不同的应用场景下获取的方式都不一样,对于NSURLConnection来说,是从: delegate回调方法:-connection:willSendRequestForAuthenticationChallenge: 的...

2016-03-13 14:38:00 94

转载 安全数字证书

公钥,私钥: 存在于非对称加密中密钥: 存在于对称加密中cer文件里面保存着公钥以及用户的一些信息(其实就是下面说到的数字证书)P12(pfx)文件(cer的备份,供其它人使用,因其它人没有私钥,所有p12中也把私钥放里面了)= CER文件 + 私钥公钥密码体制: 分为三部分: 1.公钥 2.私钥 3.加密解密算法 加密解密过程: 加密: 加密算法+公钥+内容(或者说...

2016-03-13 14:37:00 133

转载 Runtime

可以新增加一个类Class(期间可以为该类增加属性,成员变量,方法,设置其父类,所遵循的协议等)可以取到类Class的名字,大小,指定成员变量的结构体指针(然后用一系列操作成员变量结构体的方法从该结构体获取信息),指定属性的结构体指针(然后用一系列操作属性结构体的方法从该结构体获取信息),整个成员变量列表,整个属性列表,替换属性,指定实例方法的结构体指针(然后用一系列操作方法结构体的...

2016-03-13 14:36:00 74

转载 Sqlite3

线程类型: 1.单线程 设置方法: 通过在实例化sqlite3 *db时调用 sqlite3_config(SQLITE_CONFIG_SINGLETHREAD); 不支持并发操作 2.多线程(默认) 设置方法: 通过在实例化sqlite3 *db时调用 sqlite3_config(SQLITE_CONFIG_MULTITHREAD); 不支持并发操作...

2016-03-13 14:33:00 111

转载 NSFileManager&&NSFileHandle

NSFileManager: 沙盒根目录有3个文件夹: 1.Documents 建议程序创建产生的文件以及应用浏览产生的文件数据保存在该目录下 iTunes备份与恢复时会包括此目录 2.Library 存储程序的默认设置或其它状态信息 1.Caches 存放缓存文件,保存持久化数据 不被iTunes同步 一般存放一些比较大的文件而又不需要备份的文件 ...

2016-03-13 14:32:00 86

转载 制作.a静态库项目构建

IOS .a+.bundle+项目放在同一个工程新建项目,在项目TARGETS中+一个静态库类型项目,编辑静态库项目,运行静态库项目,在原项目中TARGETS-General-Linked Frameworks and Libraries添加.a库,在需要地方引用头文件,使用即可。若.a中有xib,需要把xib放到.bundle中,在原项目TARGETS中+一个.bundle类型的项目,...

2016-03-13 14:30:00 88

转载 程序间唤醒

程序间的唤醒与通讯两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式来实现的。其中的url参数就是被唤醒的程序的URL Schemes,默认项目的URL Schemes为空的,因此想让项目能被其它项目唤醒,得先设置项目的URL Schemes,具体步骤如下:1.打开项目的info.plist:2.设置i...

2016-03-13 14:29:00 86

转载 毛玻璃效果

#import <QuartzCore/QuartzCore.h>#import <Accelerate/Accelerate.h>//让对象view/imageView产生模糊效果- (IBAction)startAction:(id)sender{ [self blurryImage:[self convertViewToImage:self.view]...

2016-03-13 14:28:00 77

转载 NSLayoutConstraint

NSLayoutConstraint: 获取该类型对象方法: +(id)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2 attribute:(NSLayoutAttribute)attr2 multi...

2016-03-13 14:23:00 101

转载 UITableView && UIScrollview 实现刷新加载

UITableView: UITableView有两种风格: UITableViewStylePlain UITableViewStyleGrouped UITableView中每行数据都是一个UITableViewCell UITableViewCell自带有 一个UIView控件(contentView,作为其他元素的父控件) 两个UILable控件(textLabel...

2016-03-13 14:11:00 121

转载 UIControl && UIImage

UIControl: 控件类的抽象基类 提供跟踪触摸事件的方法有: 跟踪开始: - (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event 跟踪移动: - (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEven...

2016-03-13 14:07:00 93

转载 自制一个UIView代替ViewController的导航栏视图跟随scrollview滑动而改变大小并且图片移动交错效果,列表的Header View中的图片产生视差滚动效果...

#import <UIKit/UIKit.h>@interface ELHeaderView : UIView@property (nonatomic, weak) UIViewController *viewController;@property (nonatomic, weak) UIScrollView *scrollView;- (id)initWithFr...

2016-03-13 14:06:00 176

转载 UITableView优化

内建方法: 重用: cell header footer 在dataSource代理中实现的tableView:cellForRowAtIndexPath:方法 1.应尽可能快的返回重用cell实例,因为该方法会被每个cell调用一次。 2.不要在这里执行数据绑定,因为绑定了也没用,cell都还没在屏幕上显示 执行数据绑定,应在delegate代理的 tab...

2016-03-13 13:57:00 68

转载 滑动UIScrollView隐藏显示导航条与标签条

//计算scrollview偏移量:typedef NS_ENUM(NSInteger, ScrollDirection) { ScrollDirectionNone, ScrollDirectionUp, ScrollDirectionDown,};ScrollDirection detectScrollDirection(currentOffsetY, previo...

2016-03-13 13:56:00 115

转载 顶部图片随UITableView或UIScrollerView滑动缩放效果实现

UITableView示范例子:#import "ProfileViewController.h"static CGFloat ImageHeight = 150.0;static CGFloat ImageWidth = 320.0;@interface ProfileViewController ()@end@implementation ProfileViewC...

2016-03-13 13:54:00 167

转载 容器转场

iOS7之前,ViewController切换主要有4种方式: 1.Push/Pop NavigationViewController 2.Present and dismis Modal 3.UITabBarController 4.addChildViewControlleriOS5添加函数: - (void)transitionFromViewController:...

2016-03-13 13:52:00 75

转载 iOS中绘图

UIBezierPath:可以创建基于矢量的路径,是Core Graphics框架关于path的一个封装,可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状。 实例化方法: 1、根据一个矩形画曲线 + (UIBezierPath *)bezierPathWithRect:(CGRect)rect 2、根据矩形框的内切圆画曲线 + (UIBezierPath ...

2016-03-13 13:49:00 115

转载 UITouch && UIGestureRecognizer

UITouch:(代表触摸对象的类) ····从UIView中重写以下方法响应触摸事件捕捉触摸对象:(若不重写,该UIView不会响应触摸事件) 参数touchse表示触摸产生的所有UITouch对象 参数event表示特定事件(包含整个触摸过程所有触摸对象,通过allTouches方法获取事件内所有触摸对象,touchesForView:或touchesForWindows:方...

2016-03-13 13:47:00 113

转载 网络通讯

TCP连接: 建立一个TCP连接需要经过三次握手: 1.客户端向服务器发送syn包; 2.服务器收到syn包后回发syn+ack包 3.客户端收到syn+ack包,向服务器发送ack包 理想状态TCP连接一旦建立,任一方主动关闭连接前,TCP连接一直保持下去。服务器客户端均可发送断开TCP连接请求,断开需要四次握手HTTP连接: 客户端发送每次请求都需要服务器回送相应,请求结束...

2016-03-13 13:44:00 153

转载 Foundation与CoreFoundation联系

无缝桥接:(ARC) id oc_Variable=(__bridge_transfer id)c_Variable;//把C类型变量所有权转换到OC类型变量上(c类型转oc类型) CFTypeRef c_Variable=(__bridge_retained CFTypeRef)oc_Variable;//让C类型变量持有OC类型变量(oc类型转c类型) CFRelease(c_V...

2016-03-13 13:42:00 121

转载 设计模式浅析

面向对象编程3大特性7大原则一、面向对象的特性三个基本的特性:封装、继承与多态。1、封装面向对象编程核心思想这一就是就是将数据和对数据的操作封装在一起.通过抽象,即从具体的实例中抽取共同的性质形成一般的概念,比如类的概念.2、继承继承体现了一种先进的编程模式.子类可以继承父类的属性和功能,即子类继承了父类所具有的数据和数据上的操作,同时又可以增添子类独有的数据和数据上的操作.例如,...

2016-03-13 13:38:00 198

转载 Objective-C中GCD

同步异步并行串行任务组时间等待Dispatch Queue有两种: 1.Serial Dispatch Queue,串行Queue,按队列顺序每次只能执行一个该线程中追加的任务(可通过创建多个串行queue实现并行执行任务(会降低性能)) 串行queue可解决多个线程更新相同资源导致数据竞争的问题,让操作该资源的任务放在同一个串行queu...

2016-03-13 12:39:00 72

转载 Objective-C 多线程

iOS有三种多线程技术:1.NSThread创建方式两种:1.实例方法:- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument先创建线程对象,然后再运行线程操作,在运行线程操作前可以设置线程的优先级等线程信息2.类方法:+ (void)detachNewT...

2016-03-13 12:31:00 105

转载 block浅析与使用block导致循环强引用举例

定义语法外部变量值截获改变外部变量值block变量作用域导致block体从栈复制到堆同时变量持有了block体中截获的变量block变量作用域导致强引用typedef void(^BlockType)(NSString *str);//声明一个void(^)(NSString *str)的block类型,类型名为BlockType-(void)viewDidL...

2016-03-13 12:17:00 273

转载 Objective-C 内存管理浅析与循环强引用举例

理解变量作用域变量废弃持有对象释放对象对象所有者(引用计数)对象废弃变量所有权修饰符对对象的影响 对象相互持有导致循环强引用,举例如反复执行任务的NSTimer对象的目标对象 又保留了计时器对象,若该NSTimer对象被目标对象持有,便必定会发生循环强引用,因为NSTimer对象会持有目标, 而该NSTimer对象又是目标对象的成员变量也就是目...

2016-03-13 11:49:00 97

转载 Objective-C中深拷贝与浅拷贝简述

ios开发过程中,大体上会区分为两个概念:对象(如NSString,NSNumber等类型)容器(如NSArray,NSDictionary等类型)对象copy后拿到的对象也是和copy的对象指向同一内存地址,copy的对象引用指数+1,拷贝的只是对象的一个指针是浅拷贝mutablecopy后拿到的对象与mutablecopy的对象所处于内存不同的位置...

2016-03-13 02:28:00 91

转载 @property && @synthesize

@property与@synthesize配对使用(如今可以在.m中省略@synthesize声明,自动完成@synthesize功能,重写getter与setter或者在协议中声明的属性除外)@property: 在.h中声明成员变量编译器自动添加上setter,getter方法使其成员变量称为属性@synthesize: 在.m中声明,编译器自动添加上该成员变...

2016-03-13 02:16:00 75

转载 KVO && KVC

KVO: key-value observing 当指定的对象的属性被修改后,则对象就会接受到通知。 简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者。 使用步骤: 1.注册,指定被观察者的属性(由被观察者主动添加观察自己的观察者) 2.实现回调方法 3.移除观察 使用范例: @interfac...

2016-03-13 02:07:00 69

转载 Xcode常用快捷键

command+0:打开关闭左部command+1-8:对应左部选项command+alt+0:打开关闭右部command+shift+j:在左部文件栏定位当前文件上下选择alt+左:收起文件夹alt+右:展开文件夹command+shift+f:全局搜...

2016-03-13 01:57:00 83

转载 真机调试及上线简略流程

真机调试:参考完整图文教程--》生成证书公钥文件 --》系统应用程序-使用工具-钥匙串访问--》证书助理--》从证书颁发机构请求证书--》默认选项--》存到磁盘--》继续--》生成CertificateSigningRequest.certSigningRequest公钥文件--》生成开发证书 --》开发者管理平台--》Certificates,Identifie...

2016-03-13 01:53:00 193

转载 iOS Core Animation Advanced Techniques-图层性能

上十四章节:图层树图层的寄宿图图层几何学图层视觉效果图层变换专用图层隐式动画显式动画图层时间图层缓冲基于定时器的动画图层性能优化高效绘图图像IO这篇随笔主要介绍有关图层性能。隐式绘制: 寄宿图: 可以通过Core Graphics直接绘制 也可以直接载入一个图片文件并赋值给contents属性...

2016-03-13 01:40:00 105

转载 iOS Core Animation Advanced Techniques-图像IO

上十三章节:图层树图层的寄宿图图层几何学图层视觉效果图层变换专用图层隐式动画显式动画图层时间图层缓冲基于定时器的动画图层性能优化高效绘图这篇随笔主要介绍有关图像IO。加载与潜伏: 图片消耗很大一部分内存,不太可能把需要显示的图片都保留在内存中 所以需要在应用运行的时候周期性地加载和卸载图片。 设法...

2016-03-13 01:22:00 94

转载 iOS Core Animation Advanced Techniques-高效绘图

上十二章节:图层树图层的寄宿图图层几何学图层视觉效果图层变换专用图层隐式动画显式动画图层时间图层缓冲基于定时器的动画图层性能优化这篇随笔主要介绍有关高效绘图。软件绘图: 由Core Graphics框架完成来完成,不由GPU协助的绘图 软件绘图不仅效率低,还会消耗可观的内存。 一旦实现了CALayerDele...

2016-03-12 23:25:00 101

转载 iOS Core Animation Advanced Techniques-图层性能优化

上十一章节:图层树图层的寄宿图图层几何学图层视觉效果图层变换专用图层隐式动画显式动画图层时间图层缓冲基于定时器的动画这篇随笔主要介绍有关图层性能优化。CPU VS GPU: 绘图与动画有两种方式: 1.CPU(中央处理器) 2.GPU(图形处理器) 在图像处理上,正常GPU比CPU更高效,...

2016-03-12 23:17:00 114

转载 iOS Core Animation Advanced Techniques-基于定时器的动画

上十章节:图层树图层的寄宿图图层几何学图层视觉效果图层变换专用图层隐式动画显式动画图层时间图层缓冲这篇随笔主要介绍有关基于定时器的动画。定时帧:示范例子://使用NSTimer实现弹性球动画//add ball image viewUIImage *ballImage = [UIImage imageName...

2016-03-12 22:55:00 109

转载 iOS Core Animation Advanced Techniques-缓冲

上九章节:图层树图层的寄宿图图层几何学图层视觉效果图层变换专用图层隐式动画显式动画图层时间这篇随笔主要介绍有关图层缓冲。Core Animation使用缓冲来使动画移动更平滑更自然。动画速度:速率由以下公式计算而来:velocity = change / time/*假设了速度在整个动画过程中都是恒定不变...

2016-03-12 22:45:00 91

空空如也

空空如也

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

TA关注的人

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