@property @synthesize的含义以及误区

@property的作用是定义属性,声明getter,setter方法。(注意:属性不是变量)

@synthesize的作用是实现属性的,如getter,setter方法.

在声明属性的情况下如果重写setter,getter,方法,就需要把未识别的变量在@synthesize中定义,把属性的存取方法作用于变量。如:

.h文件中

@property (nonatomic,assign)  NSInteger age;

@property (nonatomic,retain)  NSString * name;

@property (nonatomic,copy) NSString * bb;

.m文件中

//如果不加以下三行,就报会找不到_age,_name,_bb变量的错误

@synthesize age = _age;

@synthesize name = _name;

@synthesize bb =_bb;

- (void)setName:(NSString *)name{

  if (_name!=name)

  {        [_name release];

  _name = [name retain];

  }

}

- (NSString *)name{

  return [[_name retain] autorelease];

}

- (void)setAge:(NSInteger)age{

  _age = age;

}

- (NSInteger)age{

  return _age;

}

- (void)setBb:(NSString *)bb{

  if (_bb!=bb) {

    [_bb release];

     _bb = [bb copy];

  }

}

- (NSString *)bb{

  return [[_bb retain]autorelease];

}

总结:一定要分清属性和变量的区别,不能混淆。@synthesize 声明的属性=变量。意思是,将属性的setter,getter方法,作用于这个变量。

时间: 2024-10-20 11:29:31

@property @synthesize的含义以及误区的相关文章

@property @synthesize的含义以及误区。

@property的作用是定义属性,声明getter,setter方法.(注意:属性不是变量) @synthesize的作用是实现属性的,如getter,setter方法. 在声明属性的情况下如果重写setter,getter,方法,就需要把未识别的变量在@synthesize中定义,把属性的存取方法作用于变量.如: .h文件中 @property (nonatomic,assign)NSInteger age; @property (nonatomic,retain)NSString * na

@property @synthesize 对着set方法和get方法

@property @synthesize 这两个的作用是代替set和get方法: @property int age;代替下面两句 - (void)setAge:(int)age; - (int)age; 作用: 自动生成某个成员变量的setter和getter声明: @property double weight; @property NSString *name; 现在需要到实现中去实现: 使用@synthesize age;会把age property这些声明进行实现: @synthes

OC语言@property @synthesize和id

一.@property @synthesize 这两个关键字是编译器特性,让xcode可以自动生成gettersetter的声明和实现. (一)@property  @property 关键字可以自动生成某个成员变量的settergetter方法的声明 @property int age; 编译时遇到这一行,则自动扩展成下面两句: - (void)setAge:(int)age; - (int)age; (二)@synthesize @synthesize关键字帮助生成成员变量的setterge

meta property=og标签含义及作用

不理解Meta Property=og标签是什么意思,以及对SEO的影响,看一下下面的介绍.Meta Property=og标签是什么呢?og是一种新的HTTP头部标记,即Open Graph Protocol: The Open Graph Protocol enables any web page to become a rich object in a social graph.+ n3 } 即这种协议可以让网页成为一个“富媒体对象”.用了Meta Property=og标签,就是你同意了

setter, getter, @property , @synthesize

一,单纯的set get, .h文件 @interface Person : NSObject { NSString *_name; } -(void)setName:(NSString *)name; -(NSString *)getName; @end .m文件 -(void)setName:(NSString *)name { _name = name; } -(NSString *)getName { return _name; } 调用 Person *person = [[Perso

object-c中@property @synthesize的用法

在objective-c中,我们可以用new简单的代替alloc init,我们今天介绍的是类似于new这种简易用法的另一种OC特性,用@property,@synthesize来代替get,set方法,用起来很简单,可以省掉很多的代码量,当需要用SET,GET方法的地方,我们可以用@property,@synthesize来简单的代替,这时系统会自动给我们生成该变量的set,get方法,@property对应方法的声明部分,@synthesize对应方法的实现部分. Human.h: [pla

成员变量的作用域,@property,@synthesize

成员变量的作用域 public:在任何地方都能直接访问对象的成员变量 private:只能在当前类的对象方法中直接访问(@implement中默认的) protected:可以在当前类及其子类的对象方法中直接访问(@interface中默认的) package:只要处在同一框架中,就能直接访问对象的成员变量 @property,@synthesize @property:可以自动生成某个成员变量的setter.getter方法: @synthesize:自动生成成员变量的setter.gette

「OC」@property @synthesize和id

一.@property @synthesize关键字 这两个关键字是编译器特性,让Xcode可以自动生成getter和setter. (一)@property 关键字 @property 关键字可以自动生成某个成员变量的setter和getter的声明 如:@property int age; 编译时遇到这一行,则自动扩展成下面两句: - (void)setAge:(int)age; - (int)age; (二)@synthesize关键字 @synthesize关键字帮助生成成员变量的set

property synthesize dynamic 的不同和区别

property:只是对getter和setter方法进行了声明,其他的什么也没有干. synthesize:主要是对getter和 setter方法进行了实现,并且自动把你添加实例变量如果没有实例变量的话.实现主要是根据property特性的设置,例如property设置特性为 copy(retain).readonly.assgin等. dynamic:主要是告诉编译器说 不要给我生成 实例变量.getter.setter方法.我要自己生成.如果你没有自己生成当你在调用getter或者set