- 博客(24)
- 收藏
- 关注
原创 79 MD5加密方案
1>MD5:什么是MD5全称是Message Digest Algorithm 5,译为“消息摘要算法第5版”效果:对输入信息生成唯一的128位散列值(32个字符)MD5的特点输入两个不同的明文不会得到相同的输出值根据输出值,不能得到原始的明文,即其过程不可逆MD5的应用由于MD5加密算法具有较好的安全性,而且免费,因此该加密算法被广泛使用主要运用在数字签名、文件完整性验证以及口令加密
2015-08-31 17:20:08 2190
原创 78 POST请求示例
/** * 登录逻辑 */- (IBAction)login{ // 1.表单验证(输入验证) NSString *username = self.usernameField.text; if (username.length == 0) { // 没有输入用户名 [MBProgressHUD showError:@"请输入用户名"];
2015-08-31 15:27:29 549
原创 77 NSMutableURLRequest常用设置 GET和POST比较 发送JSON给服务器
1>NSMutableURLRequest的常用设置:NSMutableURLRequest是NSURLRequest的子类,常用方法有设置请求超时等待时间(超过这个时间就算超时,请求失败)- (void)setTimeoutInterval:(NSTimeInterval)seconds;设置请求方法(比如GET和POST)- (void)setHTTPMethod:(NSString *
2015-08-31 15:26:00 1744
原创 76 JSON基本概念和解析方案
1>JSON基本概念:什么是JSONJSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外)JSON的格式很像OC中的字典和数组{"name" : "jack", "age" : 10}{"names" : ["jack", "rose", "jim"]}标准JSON格式的注意点:key必须用双引号要想从JSON中挖掘出
2015-08-31 00:43:05 395
原创 75 NSURLConnection的基本使用示例
1>NSURLConnection的基本使用示例:/** * 登录逻辑 */- (IBAction)login{ // 1.表单验证(输入验证) NSString *username = self.usernameField.text; if (username.length == 0) { // 没有输入用户名// [MBProgressHUD s
2015-08-31 00:38:54 655
原创 74 NSURLConnection的基本使用
1>NSURLConnection的基本使用:NSURLConnection常见的发送请求方法有以下几种:1)同步请求:+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error;2)异步请求:根据对服务
2015-08-31 00:36:20 375
原创 73 HTTP通信基本概念
1>URL:什么是URLURL的全称是Uniform Resource Locator(统一资源定位符)通过1个URL,能找到互联网上唯一的1个资源URL就是资源的地址、位置,互联网上的每个资源都有一个唯一的URLURL的基本格式 = 协议://主机地址/路径http://ios.itcast.cn/ios/images/content_25.jpg //域名访问,然后解析为ip地址
2015-08-29 01:14:36 569
原创 72 网络开发概念
1>HTTP请求有关的几个概念:在网络编程中,有几个必须掌握的基本概念客户端(Client):移动应用(iOS、android等应用)服务器(Server):为客户端提供服务、提供数据、提供资源的机器请求(Request):客户端向服务器索取数据的一种行为响应(Response):服务器对客户端的请求做出的反应,一般指返回数据给客户端2>服务器的种类:按照软件开发阶段来分,服务器可以大致
2015-08-29 01:06:27 401
原创 71 自定义NSOperation
1>自定义NSOperation:自定义NSOperation的步骤很简单重写- (void)main方法,在里面实现想执行的任务重写- (void)main方法的注意点自己创建自动释放池(因为如果是异步操作,无法访问主线程的自动释放池)经常通过- (BOOL)isCancelled方法检测操作是否被取消,对取消做出响应2>自定义NSOperation示例:/** * 在main方法
2015-08-28 17:08:43 350
原创 70 NSOperation基本使用
1>NSoperation:NSOperation是个抽象类,并不具备封装操作的能力,必须使用它的子类使用NSOperation子类的方式有3种NSInvocationOperationNSBlockOperation自定义子类继承NSOperation,实现内部相应的方法2>NSInvocationOperation:创建NSInvocationOperation对象- (id)initW
2015-08-28 11:07:05 424
原创 69 单例使用宏实现
1>判断是否是ARC环境:可以用宏判断是否为ARC环境#if __has_feature(objc_arc)// ARC#else// MRC#endif2>定义宏的时候字符串连接:// ## : 连接字符串和参数#define singleton_h(name) + (instancetype)shared##name;1>在ARC和MRC环境下单例的宏实现:// ## : 连接
2015-08-28 01:00:22 448
原创 68 MRC单例实现
1>MRC单例实现:- (id)init{ if (self = [super init]) { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ // 加载资源 }); } return self;}static id _i
2015-08-28 00:55:22 348
原创 67 ARC单例实现
1>ARC单例实现//// 定义一份变量(整个程序运行过程中, 只有1份)static id _instance;- (id)init{ if (self = [super init]) { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ // 加载资源
2015-08-28 00:50:21 388
原创 66 GCD常用方法
1>延时操作:iOS常见的延时执行有2种方式调用NSObject的方法[self performSelector:@selector(run) withObject:nil afterDelay:2.0];// 2秒后再调用self的run方法使用GCD函数dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSE
2015-08-28 00:46:59 778
原创 65 GCD基本使用
1>任务函数:用同步的方式执行任务dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);queue:队列block:任务用异步的方式执行任务dispatch_async(dispatch_queue_t queue, dispatch_block_t block);同步和异步的区别同步:在当前线程中执行异步:在另一条
2015-08-27 00:41:10 585
原创 64 互斥锁 线程通信 线程同步
1>互斥锁:互斥锁使用格式@synchronized(锁对象) { // 需要锁定的代码 }注意:锁定1份代码只用1把锁,用多把锁是无效的互斥锁的优缺点优点:能有效防止因多线程抢夺资源造成的数据安全问题缺点:需要消耗大量的CPU资源互斥锁的使用前提:多条线程抢夺同一块资源相关专业术语:线程同步线程同步的意思是:多条线程按顺序地执行任务互斥锁,就是使用了线程同步技术2>原子和非原子属性:
2015-08-26 10:38:13 404
原创 63 NSThread的基本使用
NSThread创建线程的几种方式:1>创建、启动线程NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run:) object:@“参数”];[thread start];// 线程一启动,就会在线程thread中执行self的run:方法,object是run:方法的参数2>创建线程
2015-08-26 00:01:21 458
原创 62 pthread
多线程实现方案一:(在iOS开发中几乎不用,仅作为了解)void *run(void *data) { NSThread *current = [NSThread currentThread]; for (int i = 0; i<20000; i++) { NSLog(@"run---%@", current); } return NULL;}- (IB
2015-08-25 01:02:15 468
原创 61 多线程基本概念
多线程基本概念:1>进程:进程是指在系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内2>线程:1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行3>线程任务的串行:1个线程中任务的执行是串行的如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务也就是
2015-08-25 00:57:09 492
原创 60.电话 信息 邮件 评分 打开其他应用
1.打电话1>// 弊端:使用该方法进行拨号之后,当电话挂断之后不会返回应用程序, 会停留在通话记录界面NSURL *url = [NSURL URLWithString:@"tel://10010"];[[UIApplication sharedApplication] openURL:url];2>// 在拨打电话之后会提示用户是否拨打, 当电话挂断之后会返回应用程序NSURL *u
2015-08-12 01:38:47 427
原创 59.strong weak,block,aotoresizing代码实现
1.strong和weak1.1>在OC中没有强指针指向的对象就会销毁,所有对象被创建的时候默认是强指针。比如:int main(int argc, const char * argv[]){ @autoreleasepool { // strong 强指针 // weak 弱指针 // ARC, 只要对象没有强指针就会自动释放
2015-08-11 15:36:30 491
原创 58.iOS6 7 cell适配 tableView背景
1.设置tableView的背景// 设置tableview的背景颜色self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg"]];// 清空系统的backgroundViewself.tableView.backgroundView = nil;//backgrou
2015-08-05 00:34:47 436
原创 57.加载json文件 webview加载网页
1.加载json文件和加载plist文件类似,给定文件路径即可,不同的是json文件需要加载为data,然后通过json序列化类转换NSString *path = [[NSBundle mainBundle] pathForResource:@"help.json" ofType:nil];NSData *data = [NSData dataWithContentsOfFile:path]
2015-08-04 22:19:30 1240
原创 56.UICollectionView的基本使用
//传入layout用于以后collection view的布局- (id)init{ //UICollectionViewLayout 布局对象决定了将来CollectionView上每一个Cell显示的方式 // 创建一个布局对象,使用UICollectionViewLayout的子类UICollectionViewFlowLayout(流水布局) UICollect
2015-08-03 18:04:03 299
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人