摘要: 1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作,2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节;4、POST请求,将参数放到body里面。POST请求操作相对复杂,需要将参数和地址分开,不过安全性高,参数放在body里面,不易被捕获。 1. 同步GET请求 //第一步,创建URL NSURL *url = [NSURL URLWithString... 阅读全文
posted @ 2013-11-28 10:30 Nonato 阅读(339) 评论(0) 推荐(0) 编辑
摘要: IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数。 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样。(一般情况下: 后面会讨论例外情况)alloc 对象分配后引用计数为1retain 对象的引用计数+1copy copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来对象计数不变release 对象引用计数-1 如果为0释放内存autorelease 对象引用计数-1 如果为0不马上释放,最近一个个pool时释放NSLog(@"sMessage retainCount:%u" 阅读全文
posted @ 2013-11-28 10:12 Nonato 阅读(6774) 评论(0) 推荐(0) 编辑
摘要: 删除svn文件sudo find . -name ".DS_Store" -exec rm -r {} \;sudo find . -name ".git" -exec rm -r {} \; 阅读全文
posted @ 2013-11-28 10:03 Nonato 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 删除svn文件sudo find . -name ".DS_Store" -exec rm -r {} \;sudo find . -name ".git" -exec rm -r {} \; 阅读全文
posted @ 2013-11-28 10:02 Nonato 阅读(119) 评论(0) 推荐(0) 编辑
摘要: __block存储类型你可以指定引入一个变量为可更改的,即读-写的,通过应用__block 存储类型修饰符。局部变量的__block 的存储和 register、auto、static 等存储类型相似,但它们之间不兼容。__block 变量保存在变量共享的作用域范围内,所有的 blocks 和 block 副本都声明或创建在和变量的作用域相同范围内。所以,如果任何 blocks 副本声明在栈内并未超出栈的结束时,该存储会让栈帧免于被破坏(比如封装为以后执行)。同一作用域范围内给定的多个 block 可以同时使用一个共享变量。作为一种优化,block存储在栈上面,就像blocks本身一样。如果使 阅读全文
posted @ 2013-11-28 09:49 Nonato 阅读(2676) 评论(0) 推荐(0) 编辑
摘要: //[iOS]MD5加密字符串//将字符串进行MD5加密,返回加密后的字符串。#import // Need to import for CC_MD5 access- (NSString *)md5:(NSString *)str{ const char *cStr = [str UTF8String]; unsigned char result[16]; CC_MD5(cStr, strlen(cStr), result); // This is the md5 call return [NSString stringWithFormat: @"%02... 阅读全文
posted @ 2013-11-28 09:39 Nonato 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 以下是从实际项目中截取的例子,从一个button中启动获得相片-(IBAction)blumbtnTap:(id)sender{ // 判断是否支持相机// UIAlertView *alertview;// if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])// {// alertview=[[UIAlertView alloc] initWithTitle:@"提示" message:@"请选择" delegate:se 阅读全文
posted @ 2013-11-28 09:37 Nonato 阅读(1039) 评论(2) 推荐(2) 编辑
摘要: 一张图说明问题如果没有成功clean一下,或者卸载掉原有的重新生成一下如果要修改路径名和工程名有个复杂的方法 http://blog.sina.com.cn/s/blog_a42013280101blxo.html 阅读全文
posted @ 2013-11-28 09:29 Nonato 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 在iOS5一下对于手势的识别能力并不强,比如iOS6上面按钮的一个tap事件,最先接收的是uiview,并相应,而不是最上面的button,这时候就需要判断手势所在的位置和手势所在的控制器了如下例子:在scrollview上add 了一个单击事件singletap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; [singletap setNumberOfTapsRequired:1];[scrollview addGestureRecognizer:singl 阅读全文
posted @ 2013-11-28 09:12 Nonato 阅读(2693) 评论(0) 推荐(0) 编辑
摘要: //block 和delegate的用法 设置代理#import typedef void (^ASIHeadersBlock)(NSString *myString);@protocol AHViewControllerDelegate - (void)smyheadersReceivedBlock:(NSString *)string;@end@interface AHViewController : UIViewController{ ASIHeadersBlock headersReceivedBlock; NSObject *delegate;}@property... 阅读全文
posted @ 2013-11-28 09:05 Nonato 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 一,概述KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。二,使用方法系统框架已经支持KVO,所以程序员在使用的时候非常简单。1. 注册,指定被观察者的属性,2. 实现回调方法3. 移除观察三,实例:假设一个场景,股票的价格显示在当前屏幕上,当股票价格更改的时候,实时显示更新其价格。//1.定义DataModel,@interface StockData : NSObject { NSString * stockName; NSString * 阅读全文
posted @ 2013-11-28 09:02 Nonato 阅读(160) 评论(0) 推荐(0) 编辑