iOS 中的set 和 get

set方法:

-(void)setName:(NSString *)name

{

  if (_name != name)

  {

   [_name release];

   [name retain];

         _name = name;

       }

}

凡是.h里面的带星号变量或者属性的都要在dealloc中release一下 [_name release];

这样释放 或者self.xxx = nil;这种更好

get方法:

-(UILabel *)titleLable

{

    if (_titleLable == nil)

    {

             _titleLable = [[UILabelalloc]init];

          } return_titleLable;

}

在get方法中初始化,当调用的时候初始化


1.     Set函数
setter函数,对成员变量赋值。Set函数的一般写法以对age操作为例,写法为:
-(void)setAge:(int)newage。
2.    Get函数
getter函数,对成员变量取值。Get函数的一般写法也以对age的操作为例,写法为:
-(int)age;
3.     点运算符在OC的类对象中不能访问成员变量,如dog.age=5,这里不是使用成员变量age,而是调用成员方法setAge,相当于给dog.age赋值时,调用方法[dog setAge:5]。
NSLog(@”%d”,dog.age); 这里也不是使用成员变量age,而是调用成员方法age,使用dog.age表达式的值时,实际上就是调用成员方法age,[dog age]。
“. ”不能调用成员变量,只是调用set函数和get函数的一种简写。这里不能理解为,定义了get函数和set函数就能调用成员变量,因为将这两个函数,不以一般形式书写时,使用dog.age时,就会报错。
4.     @property 和@synthesize
定义set函数和get函数时,我们会发现多个成员变量定义时,会做许多重复的工作,OC为了方便,将这种方法封装起来,我们可以使用@property来声明set和get函数,使用@synthesize来实现set函数和get函数。同样以Dog类的成员变量age为例。
-(void)setAge:(int)newage;
-(int)age;
这两个函数使用@property,可以写为 “@property int age;”,这样大大减少了重复性工作。
声明后实现函数,一般的实现方式为:
  1. -(void)setAge:(int)newage
  2. {
  3.         age=newage;
  4. }
  5. -(int)age
  6. {
  7.         return age;
  8. }
复制代码
       同样使用@synthesize可以简化为“@synthesize age;”
5.     set和get函数的名称与变量名不同,但同时使用点语法
1 )函数与变量名不同,使用@property和@synthesize
       @property  secondnum;
       @synthesize secondnum=b;
实现的时候关联,声明的时候不用管。这时,可以使用“对象.sencondnum”对b进行赋值和取值。
2 )set函数和get函数名称不对应
       将“@property int d;”改为“@property (getter = d1st) int d;”
“@synthesize d”不变,赋值和调用时就不同了,赋值时为“对象.d=1”,取值时就为“对象.d1st”。这里只是添加了一个新名,不是代替原有的“对象.d=1”,但是[对象 setA]就不能使用了。
3 )   @property(setter=set2nd: ;getter=d1st) int d;
这里将getter和setter函数都增加了新名字,这里必须注意的是,set函数的名字格式必须为“setXXXX:”,一定不能忘记冒号,用逗号隔开get函数,这两个函数不分前后。
“@synthesize d;”不变。
4  )  @property(readonly) int d;
       ()里的内容称为property的属性,若属性为readonly,则只声明get函数,不声明set函数,默认为readwrite。没有声明set函数@synthesize就不会实现set函数。
6.     函数前的“+”与“-”
OC中常见函数名称前面常带有“+”和“-”,这里的加减号分别代表了不同的方法类型。
+ 代表 函数为类的函数,调用时用类名调用。
-       代表 函数为对象的函数,调用时需用对象调用。
类没有空间,没有成员变量的空间,类的方法不能使用对象的成员变量。
用处: 1 在没有对象的时候,调用+函数创建一个对象。
          2 单例模式。可以看为全局变量的升级版。一个类的对象为其他类的所有对象所共有。(下阶段深化!!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值