您的位置:首页 > 移动开发 > IOS开发

小白学开发(iOS)OC_property和synthesize(2015-07-28)

2015-07-29 16:21 253 查看
 //

//  main.m

//  OC特有语法--property

//

//  Created by admin on 15/7/29.

//  Copyright (c) 2015年 admin. All rights reserved.

//

#import <Foundation/Foundation.h>

#import "Person.h"

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

    Person *p = [Person new];

    [p setAge:10];

    NSLog(@"age = %d", [p age]);

    return 0;

}

//

//  Person.h

//  OC特有语法

//

//  Created by admin on 15/7/29.

//  Copyright (c) 2015年 admin. All rights reserved.

//

#import <Foundation/Foundation.h>

@interface Person : NSObject

{

    int _age;   //  年龄

    int _no;    //  身份证号码

    NSString *_name;    //  姓名

}

/*

    1. @property 关键字是用来生成成员变量的set/get方法的声明(在Xcode4.4以前),

                 在后面的Xcode对这个做了增强,不但能声明set/get方法,而且能实现set/get方法

 

    2. @synthesize  关键字是用来实现成员变量的set/get方法的,但是在Xcode4.4之后

                    @property也可以实现, 这个实现的关键字放在.m文件中使用

 

    3. 使用@property的格式:      @property 成员变量类型 去掉下划线的成员变量名;

                         例如:  @property int age;

                                @property NSString * name;

 

    4. 使用@synthesize的格式:   @synthesize 去掉下划线的成员变量名 = 带下划线的成员变量名

                         例如: @synthesize age = _age;                                                          @synthesize name = _name;

 

    5. 说明:在xcode4.4以后property做了增强

            > 帮助我们自动生成get/set方法的声明

            > 帮助我们自动生产get/set方法的实现

            > 如果没有手动生成成员变量,property会在.m文件中自动帮我们生成一个“_”开头的成员变量

 

    6. 注意:如果想让子类继承父类的成员变量,还是必须要在父类的.h文件中手动写出成员变量

 */

@property int age;

/*

- (void)setAge:(int)age;

- (void)age;

 */

@end

//

//  Person.m

//  OC特有语法

//

//  Created by admin on 15/7/29.

//  Copyright (c) 2015年 admin. All rights reserved.

//

#import "Person.h"

@implementation Person

/*

- (void)setAge:(int)age

{

    _age = age;

}

- (int)age

{

    return _age;

}

 */

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息