首页 > 代码库 > oc学习之对象作为类的属性

oc学习之对象作为类的属性

 对象做为类的属性

1. 一个Target中的类无法直接在另外1个Target中访问.

 

 2. 类的属性代表什么?

    

    a. 类的属性代表这类事物具有的共同的特征

    

    b. 类的属性代表这个类所拥有的东西.

 

     灯:

    属性: 形状 功率 价格  品牌 剩余寿命

    方法: 照明.

 

 

    音响: 

    方法: 发声音.

 

    门:

    属性: 尺寸 材料 颜色 价格

    方法: 开 关

 

 

 3. 类的方法代表什么?

 

    a. 代表这个类所具备的行为. 这个类所具备的功能.

 

    b. 一个类有什么方法 就去分析这个类有什么功能.

 

 

  4. 属性的本质是变量.

     在创建对象的时候,对象中的属性是按照类模板中的规定挨个挨个的创建出来的.

     类模板中属性是什么类型.那么对象中的属性就是什么类型.

 

     如果对象的属性是另外1个类的对象,这个属性仅仅是1个指针变量而已.并没有对象产生.

     这个时候 还要为这个属性赋值1个对象的地址 才可以正常使用.

 

 

  5. A类可以作为B类的属性. 代表B拥有A.

     属性仅仅是1个变量而已. 是1个指针变量而已.默认值是nil 并没有创建对象.

 

     如果要正常的使用的话. 还要为B对象的A属性赋值1个对象.

 

异常处理

 

 1. 错误:

    1). 一般情况下,指的是我们的程序的源代码有语法错误.

    2). 错误的后果: 无法编译 更谈不上执行.

    2). 解决方案: 将错误的代码修改为符合语法规范的代码不就OK了.

 

 

 2. BUG

    1). 指的是,程序可以编译、链接、执行. 只不过程序执行出来的结果并不是所预设的那样.

 

    2). 解决方案: 99%的Bug都是因为变量的值没有按照所预想的那样去变化.

                 通过断点调试 去监视变量的值是如何变化的. 

                 分析为什么会乱变化. 这样就可以找到的BUG

 

 

 3. 异常

    1).概念:指的是,程序可以编译、链接、执行.

           当程序在运行的时候,程序处于某种特殊情况下的时候 程序的执行就会报错.

           这种情况叫做异常.

 

        特点: 异常不是一定会发生.而是当程序在运行的时候处于某种特定情况的时候才会发生.

 

    2).后果: 程序立即终止运行.后面的代码不会执行.

       闪退的原因:

       a. 程序所占用的空间太大. 

       b. 程序发生了异常

       .....

 

 

 

 4. 异常的处理.‘

 

    1). 处理异常的目的: 希望程序在执行的时候,如果发生了异常. 程序不要崩溃,而是继续往下执行代码.

 

    2). 使用@try...@catch处理异常.

 

    3). 将有可能发生异常的代码使用@try围起来.

        

         

        @try

        {

            在执行的时候有可能会发生异常的代码;

        }

        @catch(NSException *ex)

        {

            

        }

 

    4). 执行步骤

 

        a. 如果@try中的代码在执行的时候,发生了异常. 这个时候程序不会崩溃.

           而是会立即跳转到@catch中执行代码. @catch中的代码执行完毕之后,再继续往下执行.

 

           如果@try中的代码在执行的时候,没有发生异常,这个时候就会跳过@catch 往下执行.

 

 

        

    5).作用: 让代码在执行的时候如果发生了异常 而不崩溃.

 

 

 5. 使用注意

 

    1). 在@try中的代码执行的时候,如果发生了异常.

        会将发生异常的信息.封装为1个 NSException 对象

        把这个对象的地址.赋值给@catch的参数.然后再执行@catch的代码.

 

        所以,@catch的参数指向了错误对象.

 

        在@catch中如果想要拿到发生异常的原因.就可以访问这个参数对象.

 

 

    2). @catch中的代码只有在发生异常的时候,才会执行.

        所以.@catch中一般我们写处理异常的代码.

 

 

    3). @catch后面还可以跟1个@finally代码块.

        无论@try中是否有异常发生.@finally中的代码都会被执行 .

 

 

    4). @try..@catch并不是万能的 不是所有的异常都可以处理.

        C语言的异常处理不了. 只能处理OC的异常.

 

    5). @try..@catch在我们的代码中很少使用.

        一般情况下都是 通过逻辑判断来减少异常的发生.

 

oc学习之对象作为类的属性