黑马程序员技术交流社区

标题: oc笔记分享 [打印本页]

作者: 徐荘    时间: 2016-8-24 23:54
标题: oc笔记分享


#pragma mark - 01 OC语言的历史[了解]
此知识点复习参考OC基础01视频笔记/01 OC语言的历史.pdf

1.C是面向过程:一步一步自己弄

2.OC是面向对象:只有一个方法

#pragma mark - 02 OC语言的发展现状 [了解]
此知识点复习参考OC基础01视频笔记/02 OC语言的发展现状.pdf
#pragma mark - 03 OC的未来 [了解]

#pragma mark - 04 基础班学习目标 [掌握]

1.OC简单,语法简单


2.OC 是面向对象,养成一个习惯,从面向过程到面向对象的思维转变


3.代码量特别大,要求 "第一 回去课上代码一定写一遍
                "第二 自己想一些对象,然后写代码

"基础班学习目标
1."重点学习"面向对象编程的语法  "万丈高楼平地起
2."初步"建立面向对象的思维     "面向对象的思维是比较复杂和高深的思想,不可能13天的OC学习就能完全掌握
3.具备"初级的"项目分析"能力"   "上课过程中会穿插一些开发的例子,逐步锻炼大家的能力

#pragma mark - 05 第一个OC程序 [掌握]

1.C语言源文件 xxx.c  OC中源文件 xxx.m

2.在C语言中 我们用printf打印信息,OC中用 NSLog()来打印信息


#pragma mark - 06 OC的源文件后缀名和main函数[听懂]

1.OC的源文件后缀名: xxx.m m代表message OC的消息机制


2.main函数 也C语言中的main函数功能一样,程序的入口和出口
#pragma mark - 07 #import指令 [掌握]

#import 是 #include的增强版

1.#import指令?
    OC中 引入头文件的预处理指令

2.在C语言中 多次 #include <"文件名"> 不会有问题
    #ifndef xxx_h
    #define xxx_h
    #include "头文件.h"
    #endif
    因为C中 通过条件编译指令,来防止了重复包含
    在OC中 #import指令 不需要条件编译来防止重复包含
3.格式
    #import "自己的文件"
    #import <系统提供的文件>








#pragma mark - 08 Foundation框架简要介绍 [听懂]


1.框架:类似于 C语言中库文件(#include <stdlib.h>)

2.Foundation框架:OC中的一个特别重要的基础框架

3.第三方框架:
    除了自己和apple以外的公司或者个人提供的封装好功能的文件或者文件夹
    我们开发过程中 会经常用到第三方框架,目的让我们写代码更简单

4. 在OC源代码文件main.m中下面这句代码的作用
    创建新的工程command + shitf + n
    #import <Foundation/Foundation.h>
    而是把Foundation框架中的所有文件 都引入进入

5.Foundation 文件夹 在哪个地方
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/Foundation.h

#pragma mark - 09 NSLog函数 [掌握]

NSLog函数 是 printf函数的增强

1.NSLog函数 具有和printf函数基本上一样的功能


2.NSLog函数 打印C中的字符串的时候纯英文 没有问题,但是不能有中文


3.打印基数据类型 一些常量 变量 都是一样

4.增强体现在什么地方?
    2016-08-14 10:28:03.946 day01课上代码[7550:655818] name = abdcef
    4.1>自动智能换行:如果输出时 不加'\n',会自动换行,如果想多换行,那么必须是两个'\n'

    4.2>输出一些状态信息
        输出时间信息,精确到毫秒    " 2016-08-14 10:28:03.946
        输出当前的Target名字       "day01课上代码
        [7550:655818]  "[进程号:线程]
5.NSLog函数的格式
    NSLog(@"格式控制字符串",要打印的变量或者常量);
    NSLog函数还可以打印 OC中特有的一些数据类型

#pragma mark - 10 NSString字符串 [掌握]


1.OC中的字符串的写法
    "abcd" C语言中字符串
    @"abcd" OC中的字符串


2.在OC中有一个专门类型用来保存 OC中字符串的类型

    NSString * str = @"abcdef";

3.如何打印OC中的字符串
    要打印一个OC的字符串 用占位符 %@

#pragma mark - 11 OC的其他基础语法[掌握]

1.在OC中有大量的名字 都是以NS开头的

2.@符号的作用:
    2.1> 在C字符串前加@ 是它变成OC的字符串


    2.2>OC中新增的关键字 大部分都是以@开头
        @interface
        @implementation
        @end

3.注释:OC注释和C注释完全一样


4.OC中定义C函数的方式和语法一模一样
#pragma mark - 12 OC程序的编译链接流程[听懂]

1.创建文件 xxx.m   写代码
2.编译 ---> cc -c xxx.m
3.链接 ---> cc xxx.o -framework Foundation


4.运行 ./a.out




5. 和C程序各个阶段的文件后缀名对比.

        源文件     目标文件       可执行文件
C语言   .c        .o             .out
OC语言  .m        .o             .out

补充:
    删除某一个文件命令行 rm 文件名1 文件名2


#pragma mark - 13 BOOL类型变量

"OC 支持C语言中所有的数据类型

1.C语言中数据类型
    1>基本数据类型

    2>构造类型

    3>指针类型

    4>空类型void

    5>typedef定义的数据类型

2.OC中特有的数据类型
    1>BOOL类型

    2>Boolean类型

    3>Class 类型
    4>nil
    5>SEL类型
    6>block类型

3.BOOL类型
    1>本质:
       typedef signed char BOOL;

    2>赋值:
    BOOL rel = YES/NO;
    一般来说 BOOL 类型的变量 来表示一个条件表达式的值

    3>意义:
        YES 代表真的 NO代表假的
    BOOL 布尔类型 也可以写成bool


4.举例:写一个函数 判断 一个数是否为偶数

    BOOL panDuan(int num)
    {
        //判断 num是不是偶数
        if (num %2 == 0) {
            return YES;
        }else {
            return NO;
        }
        
    }


#pragma mark - 14 Boolean类型[掌握]

1.本质:
    typedef unsigned char  Boolean;
2.赋值:
    Boolean rel = true/false;

3.意义:
    true 代表真 false 代表假
4.BOOL 和  Boolean






#pragma mark -14 OC新增的数据类型[听懂]

1>Class 类型
    类  类型

2>nil
    和C语言中的NULL 很相似
3>SEL类型
    这个类型变量 可以保存一个方法
4>block类型
    这个类型的变量 可以保存一段代码


================NSLog和#import,OC编译连接运行,Boolean和BOOL类型================

#pragma mark -15 OC和C的对比[运算和控制语句以及构造类型]

1.运算符
    算术:+-*/%
    比较运算符:> < >= <= == !=
    逻辑运算符:&& || !
    按位运算符: & | ^ ~ << >>
    特殊运算符: =  ++ -- ?: sizeof
    复合赋值运算符:+= -= *= /= %=

2.控制语句和构造类型
    if switch
    while for do...while
    增强for循环

    数组
    结构体
    枚举


3.关键字
    @interface
    @implementation
    @end
    @public
    @protected
    @private


4.OC中相对于C的优点
    a.OC是基于C,增加一些面向对象的语法
    b.让C语言的一些复杂,繁琐的操作 变得简单


#pragma mark -16 面向过程与面向对象[掌握]

OOP:面向对象编程
Object Oriented Pragramming

洗衣服:
面向过程的思想
1)脱衣服
2)洗衣机门打开
3)放进衣服
4)关门
5)插电
6)加水 + 加洗衣粉

7)拿出来,
8)抖抖(防止起皱)
面向过程:强调步骤,每一个都要亲力亲为

面向对象的思想:
1)找一个对象(会洗衣服)
2)衣服一脱一丢
3)对象洗衣服
面向对象:强调干这件事的人

菜鸟买电脑

面向过程:
1.百度那个电脑好
2.看黄历,1月1日好日子
3.打开百度地图
4.公交东站等车
5.坐上公交,发现公交上一妹子很好看
6.看着大腿 坐过站了

7.打车回来

8.进去中关村1看,满大楼的买电脑
9.挑一家好的,挑了服务员腿最长的
10.有一种电脑




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2