oc27--synthesize,省略getset实现

Posted 672530440

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oc27--synthesize,省略getset实现相关的知识,希望对你有一定的参考价值。

//
//  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实现的主要内容,如果未能解决你的问题,请参考以下文章

OC基础:block.字面量

记OC迁移至swift中笔记20tips

android中webview与js交互

OC extern和变量

OC温习一:基本数据类型

OC块(Block)