您的位置:首页 > 运维架构

iPhone开发入门笔记(二)—@property及@synthesize

2011-08-07 14:18 435 查看
半路出家学习Objective-C,今天看到现有项目里的代码,这里一个@property那里一个@synthesize,这是啥玩意,不清楚啊不清楚。于是就学习下到底是啥呢,将我知道的结果告诉你们。

我们引用之前的代码作为例子:

代码一:

“Car.h”文件:

#import <Foundation/Foundation.h>//头文件的引用

@interface Car: NSObject {

NSInteger tiresCount;//成员属性的声明

}

- (void)haveSomething;//成员方法

- (void) set TiresCount:(NSInteger) count;

- (NSInteger) tiresCount;

@end

“Car.m”文件:

#import "Car.h"

@implementation Car

-(void) haveSomething//成员方法的实现

{

NSLog(@"Hello,My name is Car, I have %d tires.", tiresCount);

}

//对象的setter方法

-(void) setTiresCount:(NSInteger) count

{

tiresCount= count;

}

//对象的getter方法

- (NSInteger) tiresCount{

return tiresCount;

}

@end

代码二:

“Car.h”文件:

#import <Foundation/Foundation.h>//头文件的引用

@interface Car: NSObject {

NSInteger tiresCount;//成员属性的声明

}

- (void)haveSomething;//成员方法

@property NSInteger tiresCount;

@end

“Car.m”文件:

#import "Car.h"

@implementation Car

@synthesize tiresCount;

-(void) haveSomething//成员方法的实现

{

NSLog(@"Hello,My name is Car, I have %d tires.", tiresCount);

}

@end

看看以上代码一和代码二,其实这两个代码实现的功能是一样的,就是给car的成员变量tiresCount(轮子数)赋值,赋相同的值输出的结果也一样。具体哪里不同,只要看一下两个代码中红色部分:
代码一:它是手动生成对象的setter和getter方法。

代码二:在头文件中用@property,在实现类中用@synthesize,就实现了代码一中setter和getter方法。

简单的说,一个是手动一个是自动,这就是区别,这样简单的描述相信你也一定懂了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: