@interface MyClass : NSObject { 
    MyObject *myObject; 
} NSObject 后,MyObject *myObject;  有什么用?谢谢也就是 大括号内有什么特殊的用法?

解决方案 »

  1.   

    @interface MyClass : NSObject 
    这句表示定义一个类,类的名字叫MyClass,从NSObject这个父类继承来的(NSObject是objc语言的基类){ 
        MyObject *myObject; 

    这一段表示这个类有个叫myObject的属性, myObject对象是MyObject类的一个实例
      

  2.   

    定义MyClass类,继承父类NSObject设置一个成员变量myObject,大括号是设置成员变变量 属性没有大括号
      

  3.   

    myObject 是 protective 的, 子类可以继承,但子类的对象不能访问。 
    我的博客里有关于 public, protective 和 private 的文章。 伦敦iOS小牛 http://weibo.com/u/2822867275
      

  4.   


    那跟
    @property (strong, nonatomic) MyObject *myObject; 
    这么个写法有什么不同?谢谢。
      

  5.   

    object-c里面所有类的对象都需要加*, 而这里把MyObject 的对象作为变量
      

  6.   


    那跟
    @property (strong, nonatomic) MyObject *myObject; 
    这么个写法有什么不同?谢谢。正如2楼说的, myObject是MyClass类的成员变量,早期的时候每个属性都要对应一个成员变量,要像下面这样定义,所以我以为后面应该有个属性的定义
    @interface MyViewController :UIViewController
    {
        MyObject *myObject;
    }
    @property (nonatomic, retain) MyObject *myObject;
    @end后来苹果修改了LLVM,只要你用@property声明属性,就会默认为你创建一个_打头的成员变量
    成员变量的用法和属性差不多,区别是一个可以外部调用,另一个只能在类内部使用,另外成员变量是直接访问值,而属性是通过getter/setter方法来访问