OC开发系列-@property和@synthesize

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC开发系列-@property和@synthesize相关的知识,希望对你有一定的参考价值。

property和synthesize关键字

创建一个Person类。

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    int _age;
    int _height;
}

- (void)setAge:(int)age;
- (int)age;
@end
 
#import "Person.h"
@implementation Person

- (void)setAge:(int)age
{
    _age = age;
}
- (int)age
{
    return _age;
}
@end

开发中考虑封装性将成员属性通过提供setter与getter结构供外界访问。但是这些setter跟getter代码没有任何技术含量。于是苹果提供关键字propertysynthesize关键字利用编译器特性将我们自动生成setter跟getter方法。

@property int age;
// - (void)setAge:(int)age;
// - (int)age;

@synthesize age;
/*
- (void)setAge:(int)age
{

}
- (int)age
{

}
*/

@synthesize age虽然帮我们实现了set跟get方法的实现,并未指定将外界传递的值对哪个成员属性进行赋值。如上Person类需要给成员_age复制。

@synthesize age = _age;

以上是关于OC开发系列-@property和@synthesize的主要内容,如果未能解决你的问题,请参考以下文章

OC系列高级-内存管理二

OC系列高级-内存管理关键字

IOS 关键字self,super,copy, retain, assign , readonly , readwrite, nonatomic @synth

OC开发系列-成员变量的作用域

19-oc@property和@synthesize

[OC学习笔记]分类和关联对象源码解析