标签:
由于错题点击提交后不能在进入,所以只能记下小部分开始就弄不清楚的Obj-c的题目(希望能改进一下,这样更利于学习)。
1、Obj-c中变量的作用域问题。Obj-C语言支持用public、private和protected对其作用域进行设定。其中默认值为protected,表示在这个类及其派生类中可以访问该变量。public表示这个类以及其派生类,还有类外都可以对该变量进行访问,这是较不安全的。private表示只有这个类可以访问该变量,值得提出的一点是,若父类中有某private变量,则其子类不能对其引用。(这与c++中相差不多)
2、类目(categories)。当需要在一个已经定义好的类中增加一些方法而又不想重写该类的时候,可以选择类目进行方法添加。通过categories为该类添加方法,不用创建新的子类或是修改类的源代码。当类目加载之后,新方法(方法)就会变成所有类实例的一部分。需要注意的是:类目不能向类中添加实例变量,虽然类目可以读取要扩展类的实例变量,但类中不会存储类目创建的实例变量。其次,类目可以覆盖类中的方法,但此后用户将无法再调用类中的该方法,用户应该尽量避免覆盖操作。用户可以有许多类目针对一个类,类目会影响该类的子类。(不知道这是不是跟题中的类别一回事)
3、协议(protocol)。协议是OC语言中一种 特有的继承方式。协议是一个特殊的方法列表,它声明了一系列方法而不进行实现。协议不是类本身,它们仅仅是定义了其他对象有责任实现的接口。当在自己的类中实现协议的方法时,用户的类就是遵守这个协议的。协议声明的方法可以被任何一个类实现。需要注意的是,协议没有父类,并且协议也不能定义成员变量。协议的两个修饰符@optional和@required,由修饰符修饰的方法,前者代表采用该协议的类中可以选择不实现该方法,后者代表采用该协议的类必须实现该方法。协议修饰符的默认值为@required。
4、内存的分配,释放
生成并持有对象 alloc/new/copy/mutableCopyd等方法
持有对象 retain方法
释放对象 release方法
废弃对象 dealloc方法
这就简单的列出来,内部实现在以后的学习中了解(ps:c中malloc free )
标签:
原文地址:http://www.cnblogs.com/changjianhong/p/4323397.html