上次学习了Objective-C的基础知识和函数调用的基本规则, 现在我们在来了解一下新的概念——Accessors,简单意思就是访问器。 在Objective-C中所有的类成员变量默认都是私有的, 你不可能直接访问这些成员变量。你需要用setValue 和 getValue或者value来赋值或者取值,你也可以在申明变量时制定setter和getter,下面是Objective-C1.x的语法格式
1 2 | [friend setName:@"Mike"]; value = [friend name]; |
普通情况下你没必要在取值的时候添加get前缀, 实际上每一次调用[friend name]都会发送get消息给对象friend。
从Mac OSX10.5 开始支持O-C2.0, 在O-C2.0 中你可以使用点(.)来对成员变量(属性)进行赋值和取值操作, 比如
1 2 | friend.name = @"Mike"; value = friend.name; |
了解了如何访问类成员变量,我们在来看看如何创建一个类对象。 一般情况下可以有两种方式创建类对象, 第一种是调用类的静态成员创建自动释放对象(稍后会介绍)
1 | NSString* str = [NSString string]; |
调用NSString类的 string 方法返回一个自动释放的对象, 这样赋值很简单,不过要注意对象的作用域,后面将详细介绍自动释放对象。另一种方式是直接分配对象并初始化,如
1 | NSString* str = [[NSString alloc] init]; |
这是一个典型的嵌套调用, 这在上次已经介绍过了, 先是[NSString alloc]分配字符串对象空间, 然后调用init方法初始化, 这样创建的对象需要显式释放,也就是需要调用[str release]去释放内存空间。
待续。。。
相关文章