• OC3


    1.OC多文件开发(用习惯了还是挺爽的)

    多文件开发中, 要使用谁就导入谁的.h文件就可以了

    注意: 导入的一定是.h文件, 不能是.m文件

    如果导入.m文件会报重复定义错误

    2.匿名对象

    定义

    匿名就是没有名字,匿名对象就是没有名字的对象

    有名字的对象

    只要用一个指针保存了某个对象的地址, 我们就可以称这个指针为某个对象

    没有名字的对象

    无论有没有名字, 只要调用new方法都会返回对象的地址

    每次new都会新开辟一块存储空间

    匿名对象的应用场景

    当对象只需要使用一次的时候就可以使用匿名对象

    匿名对象可以作为方法的参数(实参)

    .h和.m之间切换 command  + control + ⬆️

    3.修改项目模板

    修改项目模板以及main函数中的内容

         /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/Mac/Application/Command Line Tool.xctemplate/

         

         修改OC文件头部的描述信息

         /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/Source/Cocoa Class.xctemplate

         

         Xcode文档安装的位置1:

         /Applications/Xcode.app/Contents/Developer/Documentation/DocSets

         注意: 拷贝之前最好将默认的文档删除, 因为如果同时存在高版本和低版本的文档, 那么低版本的不会显示

         Xcode文档安装的位置2:

         /Users/你的用户名/Library/Developer/Shared/Documentation/DocSets

         如果没有该文件夹可以自己创建一个

    4.封装

    定义:屏蔽内部的细节,仅仅对外提供共有的方法/接口

    好处:保证数据的安全性

             将变化隔离

    封装还有一个好处: 监听属性的变化

    规范:一般情况下不会对外直接暴露成员变量,都会提供一些共有的方法进行赋值,成员变量都需要封装起来

    5.getter- - setter方法

    setter方法:

     作用: 设置成员变量的值

     格式:

     1. setter方法一定是对象方法

     2. 一定没有返回值

     3. 一定以set开头, 并且set后面跟上需要设置的成员变量的名称去掉下划线, 并且首字母大写

     4. 一定有参数, 参数类型一定和需要设置的成员变量的类型一致, 并且参数名称就是成员变量的名称去掉下划线

    getter方法:

     作用: 获取成员变量的值

     格式:

     1. getter方法一定是对象方法

     2.一定有返回值, 而且返回值一定和获取的成员变量的类型一致

     3.方法名称就是获取的成员变量的名称去掉下划线

     4. 一定没有参数

    由于将来我们经常需要定义一些方法来操作成员变量,而每个方法都必须有一个有意义的名称,而想名字非常难,所以就有了getter-setter方法

         getter-setter方法格式和写法都是固定的,所以只要有getter-setter方法我们就不用煞费心思的去想方法名称了,解决我们起名字难问题

         并且getter-setter方法还是程序员之间的一种规范,以后别人只要想给属性赋值立刻就会想到getter-setter方法,这样降低了程序员之间的沟通成本

    一个属性可以只有getter方法, 没有setter方法, 这种属性我们称之为只读属性

     一个属性也可以只有setter方法, 没有getter方法, 这种属性我们称之为只写属性

     如果既有setter方法又有getter方法, 那么这种属性我们称之为可读可写的属性

     并且, 一个属性也可以没有getter和setter, 这种属性我们称之为私有属性

    6.点语法

    如果给属性提供了getter和setter方法, 那么访问属性就又多了一种访问方式 , 点语法

        // 点语法其实它的本质是调用了我们的setter和getter方法

        // 点语法是一个编译器的特性, 会在程序翻译成二进制的时候将.语法自动转换为setter和getter方法

        // 如果点语法在=号的左边, 那么编译器会自动转换为setter方法

        // 如果点语法在=号的右边, 或者没有等号, 那么编译器就会自动转换为getter方法

    点语法的注意点:

         点语法一般用于给成员变量赋值, 如果不是给成员变量赋值一般情况下不建议使用, 但是也可以使用

    7.self关键字

    self不能离开类, 离开类之后没有任何意义

    其实在类方法中调用类方法除了可以使用类名调用以外, 还可以使用self来调用

    如果self在对象方法中, 那么self就代表调用当前对象方法的那个对象

     如果self在类方法中, 那么self就代表调用当前类方法的那个类

     总结: 

     我们只用关注self在哪一个方法中 , 如果在类方法那么就代表当前类, 如果在对象方法那么就代表”当前调用该方法的对象"

    其实self不仅仅可以调用我们的类方法, 还可以调用对象方法

    注意:

     >self会自动区分类方法和对象方法, 如果在类方法中使用self调用对象方法, 那么会直接报错

     >不能在对象方法或者类方法中利用self调用当前self所在的方法

     使用场景:

     可以用于在对象方法之间进行相互调用

     可以用于在类方法之间进行相互调用

     可以用于区分成员变量和局部变量同名的情况

  • 相关阅读:
    @font-face
    闭包
    DOM事件
    DOM属性
    使用谷歌chrome浏览器查看任何标签的固有属性
    chmod命令
    C++笔记之零碎点
    C++学习之 —— 输入输出
    常见素数筛选方法原理和Python实现
    Django的MVT模型
  • 原文地址:https://www.cnblogs.com/micalafei/p/4774621.html
Copyright © 2020-2023  润新知