摘要: 上一篇介绍了常用的多线程技术,目前开发中比较常用的是GCD,其它的熟悉即可。多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用率来提高系统的整体性能,但是会出现多个线程对同一资源的抢夺,可能会引起线程的安全问题。 这时候可能需要创建一个单例对象来解决资源争夺问题,比较典型的是“卖票”问题1、单例对象的创建 1> 定义一个全局的静态变量,记录第一次被实例化出来的对象,并在后续使用 2> 重写allocWithZone方法,并利用dispatch_once_t实例化线程安全的对象 3> 定义以shared或者default开头的类方法,供外界创建 1 #im 阅读全文
posted @ 2014-01-08 23:55 2020_xx 阅读(1005) 评论(0) 推荐(0) 编辑
摘要: 来源:About Text Handling in iOS 官方文档iOS平台为我们提供了许多在app中展示文本和让用户编辑文本的方式。同时,它也允许你在app视图中展示格式化的文本和网页内容。你可以使用已有框架中的对象,比如text views,text fields ,web views等文本布局框架直接绘制,布局或者管理文本。通过UIKit框架中的类,你可以管理编辑菜单(包括增加自定义项目item),实现自定义输入键盘以及在app内部或者app与app之间复制、剪切、粘贴数据。注意: 这份文档之前的标题是:“Text, Web, and Editing Programming Guide 阅读全文
posted @ 2014-01-08 23:28 2020_xx 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 在ios开发中,有时候我们需要频繁播放某种提示声音,比如微博刷新提示音、QQ消息提示音等,对于这些短小且需要频繁播放的音频,最好将其加入到系统声音(system sound)里。注意:需要播放的音频文件不能超过30秒必须是IMA/ADPCM格式[in linear PCM or IMA4(IMA/ADPCM) format]必须是.caf .aif .wav文件1、自定义系统声音 // 要播放的音频文件地址 NSString *urlPath = [[NSBundle mainBundle] pathForResource:@"end_refreshing" ofType: 阅读全文
posted @ 2014-01-05 19:24 2020_xx 阅读(6184) 评论(0) 推荐(1) 编辑
摘要: 1、 监控摇一摇动作 1> 让当前视图控制器成为第一响应者 // 必须先让当前视图控制器成为第一响应者才能响应动作时间 [self becomeFirstResponder]; 2> 实现响应方法-继承自UIResponder的方法1 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event2 {3 // 如果动作类型是摇一摇[震动]4 if (motion == UIEventSubtypeMotionShake) {5 6 // 调用截屏方法7 ... 阅读全文
posted @ 2014-01-04 13:31 2020_xx 阅读(1216) 评论(0) 推荐(1) 编辑
摘要: 要实现网络数据的下载与上传,主要有三种方式> NSURLConnection 针对少量数据,使用“GET”或“POST”方法从服务器获取数据,使用“POST”方法向服务器传输数据;> NSURLSession(ios7.0新推出的) 针对大量数据,可使用“GET”方法实现线程安全的多线程下载,监控下载进度等,也可以使用“PUT”方法实现上传[put 方法存在严重的安全隐患,目前很少有服务器支持此种上传方式];> AFNetWorking(2.0之前的版本) 对NSURLConnection进行封装的第三方开源框架,实现了大量数据的下载与上传,但是对于线程安全没有较好的控制措施 阅读全文
posted @ 2014-01-03 23:04 2020_xx 阅读(2362) 评论(0) 推荐(0) 编辑
摘要: 1> JSON 特点:1、 [ ] 表示数组 {} 表示字典 - 对象模型建立关系 2、 应用非常多,基本上移动开发的主要数据传输都是JSON 要使用JSON,从网络上获取到数据data后,直接使用下面的方法进行反序列化 // 用于将NSData类型数据反序列化为字典或者数组,具体转换类型取决于JSON最外面的括号是[]或者{} + (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error; 2> XML 特点:传... 阅读全文
posted @ 2014-01-03 21:37 2020_xx 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 1、网络访问的步骤 1> 建立NSURL 2> 建立NSURLRequest 3> 建立NSURLConnection 4> 开始连接 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 5 // url 6 NSURL *url = [NSURL URLWithString:@"www.baidu.com"]; 7 8 // request 9 NSURLRequest *request = [NSURLRequest requestWithURL:url];10 ... 阅读全文
posted @ 2014-01-01 14:38 2020_xx 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 多线程的主要是用来执行一些耗时操作,例如网络图片、视频、歌曲、书籍等资源下载,游戏中的音乐播放等,充分发挥多核处理器的优势,并发(同时执行)任务让系统运行的更快、更流畅。介绍下比较常用的多线程技术, 主要有NSObject、NSThread、NSOperation、GCD等。1、 NSObject多线程技术1> 使用performSelectorInBackground可以开启后台线程,执行selector选择器选择的方法2> 使用performSelectorOnMainThread可以重新回到主线程执行任务,通常用于后台线程更新界面UI时使用3> [NSThread sl 阅读全文
posted @ 2014-01-01 11:27 2020_xx 阅读(974) 评论(0) 推荐(1) 编辑
摘要: 1、深复制与浅复制的概念->浅复制(shallow copy)概念在SDK Guides中(搜索copy),官方给出的浅复制概念为:Copyingcompound objects, objects such as collection objects that can contain other objects, must also be done with care. As you would expect, using the=operator to perform a copy on these objects results in a duplication of the obj 阅读全文
posted @ 2014-01-01 10:16 2020_xx 阅读(275) 评论(0) 推荐(0) 编辑