定义1
X.h
@interface XXX
@property (strong, nonatomic) objectType object;
@endX.m
@synthesize object;
定义2
X.h
@interface XXX
@property (strong, nonatomic) objectType object;
@endX.m
@synthesize object=_object;定义3
X.h
@interface XXX
{ objectType  _object;}
@property (strong, nonatomic) objectType object;
@endX.m
@synthesize object;定义4
X.h
@interface XXX
{ objectType  object;}
@property (strong, nonatomic) objectType object;
@endX.m
@synthesize object=_object;请各位大人帮忙解释下上面几种定义,另外标准的定义该是怎样?

解决方案 »

  1.   

    object=_object其实这就像是一个地址赋值语句。object的地址,和你_object地址是同一个。就跟我们在C++中,会设置它的初始值一样@synthesize    是实例化你的成员变量。实例化以后可以     类名。成员变量可以比较方便一点 。
      

  2.   

    给变量取别名,_object作为类内部函数使用,object设置供外部调用,如使用 instanceClass.object
      

  3.   

    一般都是这样的:
    X.h
    @interface XXX{ 
        objectType _object;//这里的声明可以不加,可是如果不加,X的子类便无法使用了,而且不加也不好,因为别人在看你这个类的时候,发现类没有_object这个对象,可是m文件中却使用了,不便于阅读
    }@property (strong, nonatomic) objectType object;@endX.m
    @synthesize object = _object;//这里是为了让区分类内部的成员变量而加的_,c++一般有这个习惯,于是在X.m文件中你可以使用_object来进行该对象的操作,切记类似self.object是调用方法而非直接操作object这个对象有空可以去看看facebook ios sdk的代码,个人感觉那个写的很标准
      

  4.   

    @property语法类似于set,get方法。具体可以看我博客。http://blog.csdn.net/holydancer