成都创新互联网站制作重庆分公司

【Objective-C】OC中对象属性的设置器和访问器

在面向对象编程中,创建一个对象,肯定会包含其中的一些属性,然后会为这些属性写上相应的set,get方法(就是通常我们讲的设置器和访问器)

创新互联公司是一家集网站建设,巫山企业网站建设,巫山品牌网站建设,网站定制,巫山网站建设报价,网络营销,网络优化,巫山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

一):通常意义上我们写的属性的set和get方法如下:创建对象,定义声明属性,然后手动编写setXXX(),getXXX()方法,如下:Person对象

    1:Person.h

      

////  Person.h//  PersonGetSet////  Created by hmjiangqq on 14-1-22.//  Copyright (c) 2014年 hmjiangqq. All rights reserved.//#import @interfacePerson:NSObject{//声明一个变量int myNumber;}-(int)myNumber;-(void)setMyNumber:(int)_number;-(void)printf;@end
2:Person.m
////  Person.m//  PersonGetSet////  Created by hmjiangqq on 14-1-22.//  Copyright (c) 2014年 hmjiangqq. All rights reserved.//#import "Person.h"@implementationPerson-(int)myNumber{return  myNumber;}-(void)setMyNumber:(int)_number{     myNumber=_number;}-(void)printf{NSLog(@"myNumber is %d\n",myNumber);}@end
这个当属性比较的少的时候还可以,如果一个对象的属性非常多的时候,我们一个个去手动写,会非常浪费开发时间,影响效率.所以在OC2.0版本之后出现了自动的设置器和访问器.
下面我们来介绍一下OC中特有的设置和访问器
2:简化设置器和访问器.注意两个关键字@property,@synthesize
  person.h
////  Person.h//  PersonGetSet////  Created by hmjiangqq on 14-1-22.//  Copyright (c) 2014年 hmjiangqq. All rights reserved.//#import @interfacePerson:NSObject{//声明一个变量int myNumber;}// 普通的get和set//-(int)myNumber;//-(void)setMyNumber:(int)_number;@property(nonatomic)int myNumer;//这样声明之后,会动态创建-(void)printf;@end
person.m
////  Person.m//  PersonGetSet////  Created by hmjiangqq on 14-1-22.//  Copyright (c) 2014年 hmjiangqq. All rights reserved.//#import "Person.h"@implementationPerson// 普通的get和set实现//-(int)myNumber{//    return  myNumber;//}//-(void)setMyNumber:(int)_number{//    myNumber=_number;//}@synthesize myNumer;-(void)printf{NSLog(@"myNumber is %d\n",myNumber);}@end
二)在@property()括号中,可以填写的属性:
   readwrite:默认
   readonly:只读以为中么有set方法
   assign:默认,引用计数不增加
   retain:引用计数增加1
原子性:actiomic默认
非原子性:nonatomic



文章标题:【Objective-C】OC中对象属性的设置器和访问器
网页链接:http://cxhlcq.com/article/jpccoe.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部