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方法。
简单的说,一个是手动一个是自动,这就是区别,这样简单的描述相信你也一定懂了!
我们引用之前的代码作为例子:
代码一:
“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方法。
简单的说,一个是手动一个是自动,这就是区别,这样简单的描述相信你也一定懂了!
相关文章推荐
- 关于iphone开发中的@property和@synthesize的一些见解
- iphone开发入门笔记
- 关于iphone开发中的@property和@synthesize的一些见解
- iPhone开发入门笔记(一)—快速入门
- Iphone开发基础篇(七)-ObjectC之@property与@synthesize的用法
- iPhone开发入门笔记(三)—关于数据类型介绍 (NSObject)
- 关于iphone开发中的@property和@synthesize的一些见解(转)
- 关于iphone开发中的@property和@synthesize的一些见解
- 关于iphone开发中的@property和@synthesize的一些见解
- 关于iphone开发中的@property和@synthesize的一些见解
- iPhone开发笔记[5/50]-忘了写@synthesize语句所产生的严重后果
- 黑马程序员 方立勋JavaWEB视频 第04天 web开发入门笔记
- iPhone开发笔记[9/50]:NSMutableArray中的自动释放对象让我郁闷了一整天
- iPhone手机开发平台入门介绍和教程
- 我的iphone开发学习笔记(六): 使用选项卡栏管理多视图界面
- iPhone 3.0 SDK开发秘籍笔记(第五章)
- Arduino入门笔记(2):Arduino的开发和virtualbreadboard仿真环境
- iphone开发笔记(-)
- iPhone/Mac Objective-C内存管理教程和原理剖析 【三、@property (retain)和@synthesize的默认实现】
- Python快速开发入门重点笔记