黑马程序员技术交流社区
标题:
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