@dynamic 和@synthesize区别,@encode

 

@dynamic 是相对于 @synthesize的,它们用样用于修饰 @property,用于生成对应的的getter和setter方法。但是@ dynamic表示这个成员变量的getter和setter方法并不是直接由编译器生成,而是手工生成或者运行时生成。示例如下:
@implementation ClassName
@synthesize aProperty , bProperty ;
@synthesize cProperty =instanceVariableName ;
@dynamic anotherProperty ;

// method implementations
@end

@encode 是用于表示一个类型的字符串,对此,苹果有专门的介绍文档: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html 

示例代码如下:

- ( void ) aMethod
{
     char  *enc1  = @encode ( int ) ;                  // enc1 = "i"
     char  *enc2  = @encode (id ) ;                   // enc2 = "@"
     char  *enc3  = @encode (@selector (aMethod ) ) ;   // enc3 = ":"

     // practical example:
    CGRect rect  = CGRectMake ( 0 ,  0 ,  100 ,  100 ) ;
    NSValue  *=  [NSValue value :&rect withObjCType :@encode (CGRect ) ] ;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值