iOS中@synthesize和@d

iOS中@synthesize和@dynamic的区别在于:

@synthesize :系统自动生成getter和setter属性声明
@dynamic :开发者自已提供相应的属性声明

示例代码:

     //在.h文件
     @interface Person : Object

     @property (nonatomic, retain) NSString * name;
     @property (nonatomic, retain) NSNumber * status;

     @end

     //在.m文件
     @implementation Person

     @dynamic name;
     @dynamic status;

     - (void) add:(Person*)data {

          Person *p = [[Person alloc] init];
          p.name = data.name;
          p.image = data.image;

          if (p.name) {
               NSLog(@"person=%@", data);
          }

     }

     @end