pragma mark synthesize基本使用
pragma mark 概念
pragma mark 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#pragma mark main函数
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(@"p->age = %i, p->_number = %i",p->_age,p->_number);
NSLog(@"_age = %i,age = %i",p->_age,p->age);
return 0;
}
Person.h //人类
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
@public
int _age;
int age;
int _number;
}
#pragma mark property使用
/**
property 是一个编译器指令
在Xcode4.4之前, 可以使用@property 来代替 getter/setter方法的声明
也就是说我们只需要写上@property 就不写
编译器 只要看到@property, 就知道我们要生产某一个属性的setter/getter方法的说明
- (void)setAge:(int)age;
- (int)age;
*/
@property int age;
@end
Person.m
#import "Person.h"
@implementation Person
/*
synthesize: 合成、综合
@synthesize 是一个编译器指令, 他可以简化 getter/setter方法的实现
什么是实现:
在声明后面写上 大括号 就代表着实现
1. 在synthesize 后面 告诉编译器, 需要实现哪个 @property生成的声明
2. 告诉@synthesize, 需要将传入的值 赋值给谁和 返回谁的值 给调用者
*/
//@synthesize age = _age; // 这个名字 必须和 @property的名字一样
//@synthesize age = _number;
#warning 如果在@synthesize后面没有告诉系统将传入的值赋值给谁, 系统默认会赋值给和@synthesize后面写得名称相同的成员变量
//_age ? age;
@synthesize age;
/*
- (void)setAge:(int)age
{
_number = age;
}
#pragma mark getter
- (int)age
{
return _number;
}
*/
/*
#pragma mark setter
- (void)setAge:(int)age
{
_age = age;
}
#pragma mark getter
- (int)age
{
return _age;
}
*/
@end