码迷,mamicode.com
首页 > 其他好文 > 详细

oc27--synthesize,省略getset实现

时间:2017-08-22 23:13:02      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:int   copyright   imp   tag   create   get   property   系统默认   pre   

//
//  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    @public
    int _age;
    int age;
    int _number;
}

/*
@porperty是一个编译器指令
 在Xocde4.4之前, 可以使用@porperty来代替getter/setter方法的声明
 也就是说我们只需要写上@porperty就不用写getter/setter方法的声明
 
 编译器只要看到@property, 就知道我们要生产某一个属性的getter/setter方法的声明
 - (void)setAge:(int)age;
 - (int)age;
 */
@property int age;  //就可以使用  [p setAge:88];
@end
//
//  Person.m

#import "Person.h"

@implementation Person
/*
 @synthesize是一个编译器指令, 它可以简化我们getter/setter方法的实现*/
 
@synthesize age = _age;  // 赋值给_age
/*
 - (void)setAge:(int)age
 {
 _age = age;
 }
 - (int)age
 {
 return _age;
 }
 */

/*@synthesize age = _number;   赋值给_number
 - (void)setAge:(int)age
 {
    _number = age;
 }
 - (int)age
 {
    return _number
 ;
 }
 */



// 如果在@synthesize后面没有告诉系统将传入的值赋值给谁, 系统默认会赋值给和@synthesize后面写得名称相同的成员变量
/*
// _age? age : age
@synthesize age;  //就可以使用  [p setAge:88];

- (void)setAge:(int)age
{
    _age = age;
}
- (int)age
{
    return _age;
}
 */
@end
//
//  main.m
//  synthesize基本使用
//
//  Created by xiaomage on 15/6/23.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[]) {
    Person *p = [Person new];
    [p setAge:88];
    NSLog(@"age = %i , p->_age = %i", [p age], p->_age);
    NSLog(@"_age = %i, _number = %i", p->_age, p->_number);
    NSLog(@"_age = %i, age = %i", p->_age, p->age);
    
    return 0;
}

 

oc27--synthesize,省略getset实现

标签:int   copyright   imp   tag   create   get   property   系统默认   pre   

原文地址:http://www.cnblogs.com/yaowen/p/7413863.html

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