关闭

Objective-c - setter/getter方法的自动生成(Xcode4.4版本开始)

标签: Objective-csettergetter方法Xcode4.4版本
442人阅读 评论(0) 收藏 举报
分类:

/*

 Objective-c - setter/getter方法的自动生成(Xcode4.4版本开始)

 

    1> @property的增强:

        Xcode4.4版本开始,@property实现了增强,只写一个@property,编译器就会自动帮你完成如下工作:

        1, 自动生成一个带下划线的属性,这个属性是生成在@implementation中的真私有属性.

        2, 自动生成属性的setter/getter方法的声明.

        3, 自动生成属性的setter/getter方法的实现.

           setter方法的内部直接将参数赋值给了它自动生成的真私有属性.

           getter方法的内部直接返回它自动生成的真私有属性的值.

    

    2> @property的增强的使用:

        1, @property的属性名称不要带下划线,这样就可以在@implementation中生成带下划线的真私有属性.

        2, @property类型相同的时候可以批量声明,类型不同不可以批量声明.

        3, @property生成的方法也是没有逻辑验证的,如果需要逻辑验证,可以自己重写方法.

        4, 如果重写了setter方法,@property仍然会生成私有属性和getter方法;

           如果重写了getter方法,@property仍然会生成私有属性和setter方法.

        5, 如果同时重写了setter/getter方法,那么@property就不会生成私有属性了.

           则需要自己在@implementation中添加属性.

 

 如下代码:

 

 */



#import <Foundation/Foundation.h>

#import "YYPerson.h"


int main(int argc, const char * argv[]) {

    

    //创建人对象

    YYPerson *xiaoming = [YYPerson new];

    //赋值属性

    xiaoming.name = @"小明";

    xiaoming.age = 18;

    

    //取值:

    NSLog(@"大家好!我叫%@,今年%d岁了!", xiaoming.name, xiaoming.age);

    

    //调用方法

    [xiaoming sayHi];

    

    

    return 0;

}

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

object c @synthesize 自动生成setter,getter方法

Objective-C语言关键词,与@synthesize配对使用。   功能:让编译器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。   如:   1、在头...
  • PZ0605
  • PZ0605
  • 2014-04-30 16:47
  • 1198

Objective-c - setter/getter方法的自动生成:(Xcode4.4版本之前)

/*  Objective-c - setter/getter方法的自动生成:    大前提:Xcode在4.4版本之前@property,@synthesize的用法和使用注意: ...
  • xuezhangjun0121
  • xuezhangjun0121
  • 2016-12-29 16:57
  • 261

玩转Eclipse — 自动生成setter和getter方法

我们在程序开发过程中,往往要编写这样的类:类的部分或者全部属性不希望让外部世界直接访问,而不用public字段修饰。这样,方法调用成了访问这些属性的唯一途径。JavaBean就是一个很好的例子,其严格...
  • Super_Eagle
  • Super_Eagle
  • 2013-09-24 17:11
  • 17512

eclipse 自动生成getter setter的问题

众所周知的java中都会给类的属性写getter和setter方法,以getter方法为例,通常是get+属性的大写首字母+属性剩下的字符组成。比如:有个属性名为name,那么其getter方法名就是...
  • psp0001060
  • psp0001060
  • 2016-03-31 14:36
  • 1561

看不明白这篇你敢说懂setter/getter?

setter/getter是一个类最基本的东西,任何一门面向对象的语言,都有这个概念,C++、java等等。因为setter/getter是对面向对象语言封装的最基本的支持。OC中的setter/ge...
  • u012946824
  • u012946824
  • 2016-07-04 16:42
  • 1047

eclipse 自动为getter和setter添加中文注释

在我们使用eclipse进行开发的时候常常会使用到eclipse自动生成getter和setter的功能,然后大多情况下eclipse为我们生成的getter和setter都是无法在项目中使用的。还需...
  • kongguoan
  • kongguoan
  • 2014-07-30 09:42
  • 2546

深刻理解属性、getter及setter

原文:http://iphonedevsdk.com/forum/iphone-sdk-tutorials/7295-getters-setters-and-properties-for-the-ne...
  • kmyhy
  • kmyhy
  • 2013-02-05 14:47
  • 15764

lombok生成getter、setter的小陷阱

最近做项目使用lombok生成getter和setter,代码如下:  以下代码为示例代码:  Java代码   import lombok.Setter;   imp...
  • wangcunhuazi
  • wangcunhuazi
  • 2015-01-18 15:54
  • 2057

JavaScript对象中属性的getter和setter方法

JavaScript对象的属性是由名字、值和一组特性(可写、可枚举、可配置等)构成的。在ECMAScript 5中,属性值可以用一个或两个方法代替,这两个方法就是getter和setter。var m...
  • u012510478
  • u012510478
  • 2017-01-10 11:54
  • 1798

Javascript面向对象(二)——setter、getter属性

setter、getter属性 Javascript对象有两种属性,一种是数据属性,我们经常使用比较熟悉;第二种是访问器属性,本质就是获取和设置值的函数,但从代码上好像是正常属性。 Getters...
  • neweastsun
  • neweastsun
  • 2017-04-15 20:27
  • 594
    个人资料
    • 访问:22218次
    • 积分:1312
    • 等级:
    • 排名:千里之外
    • 原创:106篇
    • 转载:3篇
    • 译文:0篇
    • 评论:4条
    最新评论