IOS开发入门之ios-set和get方法
凌雪 2018-11-06 来源 :网络 阅读 2746 评论 0

摘要:本文将带你了解IOS开发入门ios-set和get方法,希望本文对大家学IOS有所帮助。

本文将带你了解IOS开发入门ios-set和get方法,希望本文对大家学IOS有所帮助。


         

ios-set和get方法,在OC的类中,我们如果在interface{}中定义了成员变量,如果我们想要在类外给他们赋值和获取他们的值,我们就需要给他们写set方法和get方法,否则会报错。如果成员变量名是age,对于set方法的格式要求是setAge,意思就是说set方法要以set开头后面的字符为变量的大写字母开头,get方法就是一般就是以变量名来命名。比如说


   

#import <foundation foundation.h="">

 

@interface RectMno : NSObject

{

    @public NSInteger   age;

}

@property (nonatomic,assign) int a;

-(int)age;

-(void)setAge:(int)age1;

@end

</foundation>

   


#import "RectMno.h"

 

@implementation RectMno

-(void)setAge:(int)age1

{

    age=age1;

}

-(int)age

{

    return age;

}

@end

   

只有给这个成员变量定义了get方法和set方法才能得到它的值和获取它的值点运算符在oc的类对象中不能访问成员变量,如rect.age=5,这里不是使用成员变量age,而是调用成员方法setAge,相当于给rect.age赋值,调用方法[rect   setAge:5]; NSLog(@" %d ", rect.age); 这里也不是使用成员变量age,而是调用成员方法age,   使用dog.age表达式的值时,实际上就是调用成员方法age, [rect age]. " . "   不能调用成员变量,只是调用set函数和get函数的一种简写。   这里不能理解为定义了get函数和get函数就能调用成员变量.

而我们如果定义了一个属性就会自动生成get方法和set方法。但是如果同时重写了这个属性的get方法和set方法就会报错,单独重写任何一个都不会报错。主要是因为当你复写了get和set方法之后@property默认生成的@synthesize就不会起作用了,这也就意味着你的类不会自动生成出来实例变量了,你就必须要自己声明实例变量,比如说你定义了一个属性


   

@property (nonatomic, copy) NSString   *name;

   

则在interface{}中就要定义一个NSString   *_name;,否则会报错。因为一旦同时重写了setter、getter方法,并且没有实现@synthesizer,@synthesizer就不再生成实例变量。

属性的作用是生成setter以及getter方法的实现,如果方法内部操作的实例变量未定义,系统会自动生成一个_属性名的实例变量,但是生成的实例变量的可见度是私有的,子类不可访问。

    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!


本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程