zoukankan      html  css  js  c++  java
  • iOS开发--成员变量与属性

    属性变量

    @interface MyClass:NSObject{    

            MyObjecct *_object;  

    }  

    @property(nonamtic, retain) MyObjecct *object;  

    @end  

    @implementatin MyClass  

    @synthesize object=_object; 

    可以用点语法

    成员变量定义:生存与该类的生命周期,变量存活周期跟你定义的该类实体对象一样;作用域是整个实体对象;可以在h文件中声明或者在m文件中@implementation上面添加     @interface

     @interface MyViewController :UIViewController

    {
        NSString *name;
    }
    @end

     .m文件中,self.name 这样的表达式是错误的。xcode会提示你使用->,改成self->name就可以了。因为oc中点表达式是表示调用方法,而上面的代码中没有name这个方法。

      oc语法关于点表达式的说明:"点表达式(.)看起来与C语言中的结构体访问以及java语言汇总的对象访问有点类似,其实这是oc的设计人员有意为之。如果点表达式出现在等号 = 左边,该属性名称的setter方法将被调用。如果点表达式出现在右边,该属性名称的getter方法将被调用。"

    @interface ViewController : UIViewController {
    //成员变量 NSArray *array1;
    }
    //属性变量 @property (nonatomic,strong) NSArray *array2;
    @end

     
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        array1 = [[NSArray alloc] initWithObjects:@"abcde", nil];
        array2 = [[NSArray alloc] initWithObjects:@"123abc", nil];
        {
    //        局部变量
            NSArray *array1 = [[NSArray alloc] initWithObjects:@"12345", nil];
        }
        NSLog(@"
    array1 : %@
     array2 : %@",array1,array2);
    }
    


    全局变量

      定义:在@implementation外定义的变量(在@implementation中定义也是可以但是一般不这么干)    @implementation

    Objective-C里面既有实例方法也类方法。类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method)。工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,所以在其他的语言里面类方法有的时候被称为静态方法。
    注意点一:类方法
    1,类方法可以调用类方法。
    2,类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法。
    3,类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量。
    4,类方法作为消息,可以被发送到类或者对象里面去(实际上,就是可以通过类或者对象调用类方法的意思)。
    注意点二:self的规则
    大家需要记住下面的规则:
    1,实例方法里面的self,是对象的首地址。
    2,类方法里面的self,是Class.
    尽管在同一个类里面的使用self,但是self却有着不同的解读。在类方法里面的self,可以翻译成class self;在实例方法里面的self,应该被翻译成为object self。在类方法里面的self和实例方法里面的self有着本质上的不同,尽管他们的名字都叫self。

  • 相关阅读:
    git使用介绍
    Core Foundation框架介绍
    masonry使用介绍
    markdown学习笔记
    xcode中的第三方库配置问题总结
    js,jquery概念理解
    少侠
    PHP中的null类型
    php表单中如何获取单选按钮与复选按钮的值
    案例:批量删除
  • 原文地址:https://www.cnblogs.com/wanghuaijun/p/5253040.html
Copyright © 2011-2022 走看看