摘要: 1、类别(category)使用Object-C中的分类,是一种编译时的手段,允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到,这点和javascript中使用原型来定义属性有点类似。我们可以为一个类创建一个新的方法,而不需要在代码中编辑类定义。下面就是定义并使用分类的例子程序,通过下面代码,我们可以给Object-C中的NSString 添加camelCaseString分类,使用camelCaseString方法,就可以去掉一个字符串中的空格,并将原有空格后的单词改写成大写(即将字符串转化为驼峰式)。#import 阅读全文
posted @ 2013-09-25 17:46 子非あ鱼 阅读(1727) 评论(0) 推荐(0) 编辑
摘要: 什么是多线程多线程是一个比较轻量级的方法来实现单个应用程序内多个代码执行路径。从技术角度来看,一个线程就是一个需要管理执行代码的内核级和应用级数据结构组合。内核级结构协助调度线程事件,并抢占式调度一个线程到可用的内核之上。应用级结构包括用于存储函数调用的调用堆栈和应用程序需要管理和操作线程属性和状态的结构。多线程的替代方法你自己创建多线程代码的一个问题就是它会给你的代码带来不确定性。多线程是一个相对较低的水平和复杂的方式来支持你的应用程序并发。如果你不完全理解你的设计选择的影响,你可能很容易遇到同步或定时问题,其范围可以从细微的行为变化到严重到让你的应用程序崩溃并破坏用户数据。你需要考虑的另一 阅读全文
posted @ 2013-09-25 16:11 子非あ鱼 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 1:原子操作 - OSAtomic系列函数iOS平台下的原子操作函数都以OSAtomic开头,使用时需要包含头文件。不同线程如果通过原子操作函数对同一变量进行操作,可以保证一个线程的操作不会影响到其他线程内对此变量的操作,因为这些操作都是原子式的。因为原子操作只能对内置类型进行操作,所以原子操作能够同步的线程只能位于同一个进程的地址空间内。2:锁 - NSLock系列对象iOS平台下的锁对象为NSLock对象,进入锁通过调用lock函数,解锁调用unlock函数(因为iOS中大部分的线程同步类都继承自NSLocking协议,所以其加锁/解锁的操作基本都为lock/unlock函数),同一个NS 阅读全文
posted @ 2013-09-25 15:50 子非あ鱼 阅读(703) 评论(0) 推荐(0) 编辑
摘要: 我们今天谈谈cocoa程序设计中的模型-视图-控制器(MVC)范型。我们将从两大方面来讨论MVC:什么是MVC?M、V、C之间的交流方式是什么样子的?理解了MVC的概念,对cocoa程序开发是至关重要的。一、MVC的概念MVC是Model-VIew-Controller,就是模型-视图-控制器,这些都是什么东西呢?MVC把软件系统分为三个部分:Model,View,Controller。在cocoa中,你的程序中的每一个object(对象)都将明显地仅属于这三部分中的一个,而完全不属于另外两个。Model = 你的程序是什么(而不是你的程序是如何显示的)让我们举个例子,我们上中学的时候,我们的 阅读全文
posted @ 2013-09-25 11:40 子非あ鱼 阅读(1447) 评论(0) 推荐(0) 编辑
摘要: Objective-C语言是面向对象的高级编程语言,因此,它具有面向对象编程所具有的一些特性,即:封装性、继承性和多态性。今天介绍一下Objective-C中的多态性。 一、什么是多态 多态:不同对象以自己的方式响应相同的消息的能力叫做多态。 由于每个类都属于该类的名字空间,这使得多态称为可能。类定义中的名字和类定义外的名字并不会冲突。类的实例变量和类方法有如下特点:和C语言中结构体中的数据成员一样,类的实例变量也位于该类独有的名字空间。类方法也同样位于该类独有的名字空间。与C语言中的方法名不同,类的方法名并不是一个全局符号。一个类中的方法名不会和其他类中同样的方法名冲突。两个完全不同的... 阅读全文
posted @ 2013-09-25 11:36 子非あ鱼 阅读(911) 评论(0) 推荐(0) 编辑
摘要: 在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题。一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性。这些组件把复杂的网络底层操作封装成友好的类和方法,并且加入异常处理等。那么,大家最常用的组件是什么?这些组件是如何提升开发效率和稳定性的?哪一款组件适合自己,是 AFNetworking(AFN)还是 ASIHTTPRequest(ASI)?几乎每一个iOS互联网应用开发者都会面对这样的选择题,要从这两个最常用的组件里选出一个好的还真不是那么容易。单单从两个控件版本提交的时间节点来看,AFN的第一个提交是2011年的1月1日,那个时候ASI早已是 阅读全文
posted @ 2013-09-25 11:22 子非あ鱼 阅读(776) 评论(0) 推荐(0) 编辑