码迷,mamicode.com
首页 > 移动开发 > 详细

IOS第三天(@property与@synthesize的用法)

时间:2015-10-05 18:12:51      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:

一、@property与@synthesize基本规范用法

  1.@property

  当编译器遇到@property时,会自动展开成getter和setter的声明

#import <Foundation/Foundation.h>

@interface Student : NSObject {
    int _age;
    int _no;
    float _height;
}

// 当编译器遇到@property时,会自动展开成getter和setter的声明
@property int age;
//- (void)setAge:(int)newAge;
//- (int)age;

@property int no;
//- (void)setNo:(int)newNo;
//- (int)no;

@property float height;
//- (void)setHeight:(float)newHeight;
//- (float)height;


- (void)test;
@end

 

 

  2.@synthesize

  @synthesize会自动生成getter和setter的实现

#import "Student.h"

@implementation Student

// @synthesize age, height, no;

// @synthesize会自动生成getter和setter的实现

// @synthesize默认会去访问跟age同名的变量
// 如果找不到同名的变量,会自动生成一个私有的同名变量age
// @synthesize age;

// age = _age代表getter和setter会去访问_age这个成员变量
@synthesize age = _age;
//- (void)setAge:(int)newAge {
//    _age = newAge;
//}
//
//- (int)age {
//    return _age;
//}

@synthesize height = _height;
//- (void)setHeight:(float)newHeight {
//    _height = newHeight;
//}
//
//- (float)height {
//    return _height;
//}

@synthesize no = _no;
//- (void)setNo:(int)newNo {
//    _no = newNo;
//}
//
//- (int)no {
//    return _no;
//}

- (void)test {
    
    _age = 10;
    
    
    _height = 10.0f;
    
    _no = 10;
    
}
@end

 

 

二、@property与@synthesize进阶用法

  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject {
    int _ID;
    float _weight;
}

@property int ID;

@property float weight;

@end

   

  Person.m

#import "Person.h"

@implementation Person

@synthesize ID = _ID;
@synthesize weight = _weight;

//- (void)setWeight:(float)weight {
//    _weight = weight * 1000;
//}

//- (float)weight {
//    return _weight * 1000;
//}
@end

 

三、@property与@synthesize终极用法

  Teacher.h

#import <Foundation/Foundation.h>

@interface Teacher : NSObject

@property int age;
@end

  Teacher.m

#import "Teacher.h"

@implementation Teacher

// 在xcode4.5的环境下,可以省略@synthesize,并且默认会去访问_age这个成员变量
// 如果找不到_age这个成员变量,会自动生成一个叫做_age的私有成员变量

-(void)test {
    
    _age = 10;
}
@end

 

IOS第三天(@property与@synthesize的用法)

标签:

原文地址:http://www.cnblogs.com/zhmnda/p/4855925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!