1. 0420
    1. Objective-C
      1. day01
        1. OC基本语法
          1. #import指令
          2. 引入库函数的指令
          3. 是 #include增强版
          4. 利用预编译指令防止头文件的重复包含
          5. #ifndef #define
          6. #endif
          7. 利用#import ,即使不用预编译指令,也可以防止头文件的重复包含
          8. 同其他预编译指令一样,如#define 宏定义将字符串替换,这个import是将代码拷贝到该文件中
          9. 同一个文件,无论用import 包含多少次,都会只当做一次
          10. #include指令单独使用,可能会造成重复包含,要适用预编译命令防止
          11. 引入库函数的操作
          12. #import <stdio.h>
          13. 尖引号 引用系统文件
          14. 文件搜索顺序
          15. 编译器文件夹-》系统文件夹-》查找失败
          16. #import "aaa.h"
          17. 双引号 引用用户文件
          18. 文件搜索顺序
          19. 当前文件夹 -》编译器文件夹-》系统文件夹-》查找失败
          20. 框架的概念
          21. 将事先准备的功能模块封装在一个个类中,这些类的集合叫框架
          22. 类似C语言中的函数库
          23. Foundation框架
          24. 提供了OC最基础的功能
          25. autoreleasepool框架
          26. 自动释放池
        2. OC完成学习路线
          1. OC概述
          2. OC中的面向对象特性
          3. OC中的面向对象
          4. 内存管理
          5. OC中类目,协议,延展,委托模型
          6. Blocks
          7. Foundation框架介绍
          8. 文件操作
          9. 复制
          10. 对象归档
          11. KVC/KVO
        3. NSLog函数的使用
          1. NSLog是printf的增强版
          2. 简单的字符串
          3. NSString *str =@"你好你好";
          4. // str 是变量名,变量名中保存的是字符串地址
          5. NSLog(@"str ===== %p",str);
          6. 打印出来的是地址
          7. NSLog(@"str ===== %@\n",str);
          8. 打印出来的实际的字符串
          9. 除了上面用变量进行打印外,还能直接这样打印常量
          10. NSLog(@"我要打印的是 %@",@"你好你好")
          11. NS前缀
          12. 没有命名空间的概念,OC中类名必须全局唯一
          13. 不同框架中有类似的功能,可能导致类名重复,objectiveC规定类名要有前缀
        4. OC中注释及@符号的使用
          1. @的使用方法
          2. @“This is OC”
          3. 将C语言字符串转化为OC字符串
          4. 标识符
          5. OC中大部分标识符都以@开头
          6. OC中注释
          7. 同C语言
        5. 访问OC源文件,C源文件的函数
          1. 1. 创建C文件
          2. 2.C文件中定义个函数
          3. 3. C头文件中声明
          4. extern void testCShow();
          5. 4. OC代码中引用 import 上述的头文件
          6. 5. OC代码中可以开始使用
        6. OC和C的差异化学习
          1. 数据类型对比
          2. C语言
          3. 基本类型
          4. 整型
          5. 字符
          6. 实型
          7. 构造
          8. 数组
          9. 结构体
          10. 子主题 3
          11. 枚举
          12. 指针
          13. 空类型void
          14. 定义类型typedef
          15. OC中数据类型
          16. 包含上述C语言类型
          17. 新增了
          18. 布尔型BOOL
          19. BLOCK类型
          20. 代码块数据类型
          21. 指针数据类型
          22. 类class
          23. id类型
          24. 动态对象类型
          25. 特殊类型
          26. SEL / nil
          27. 变量定义
          28. C语言中变量定义,可以直接在OC中使用
          29. 流程控制语句完全一样
          30. for
          31. while
          32. do while
          33. if
          34. switch
          35. OC中新增异常捕捉
          36. @try...@catch...@finally
          37. @try { //可能出错代码 NSLog(@"try"); } @catch (NSException *exception) { //一旦出错,将被执行的补救代码 NSLog(@"catch"); } @finally { //无论出错与否都被执行 NSLog(@"finally"); }
        7. 面向对象
          1. 四个主要特征
          2. 抽象性
          3. 封装性
          4. 多态性
          5. 继承性
    2. UI基础
      1. day01
        1. apple简介
          1. IOS框架
          2. UIKit
          3. 用户界面
          4. QuartzCore
          5. 动画特效
          6. CoreGraphics
          7. 2D绘制
          8. MapKit
          9. 内置地图
          10. 不要重复造轮子
          11. AVFoundation
          12. 音频视频
          13. 面向对象
        2. 模拟器
          1. 熟悉模拟器中常见的操作
        3. 创建IOS项目
        4. Main.storyBoard
          1. LaunchScreen.storyBoard
          2. 启动的画面
          3. 用于搭建用户界面
          4. 有个AutoLayout概念
          5. 用于程序在各个版本中保持正常显示
          6. 如何调整storyBoard的大小
          7. 按上面的view 圆按钮
          8. 点击AttributeInspector选择size
          9. 例如在iphone6中为4.7inch
        5. 计算器界面
          1. 利用 AI的keyboardType,调整Text中的弹出键盘
          2. 只弹出数字键盘
        6. ViewController与View的关系
          1. 代码写在viewController中
          2. 作用是管理视图
          3. ViewController中有个view
          4. 可以从storyBoard中看出
          5. 也可以从ViewController的头文件代码中看出
          6. View与ViewController两个类本身是没有关系的
          7. View用来管理一起能看到的组件
          8. 分别继承于UIView 和 UIViewController
          9. UIViewController中有个类型为UIView的对象
          10. 另外,应用程序入口在 supportFile中的main.m
        7. 将按钮与方法连接
          1. 事先定义方法
          2. - (IBAction)doSomething { NSLog(@"have fun"); }
          3. 连接方法
          4. 方法1
          5. 按下键盘的control键,将button拖向ViewController,会弹出方法,选择连接
          6. 方法2
          7. 点击button后右键,将touchupinside选择
          8. 指向头文件h文件的dosomething函数
        8. 解决键盘的问题
          1. 有时候在模拟器上键盘显示不出来
          2. 点击菜单上的Hardware选择
        9. 方法连接时的问题
          1. 1,如果在代码中删除了一个方法,一定要将对应的连接也删除
          2. 在删除方法代码时,确认是否有对应的连接在使用
          3. 否则出现运行时错误
          4. 2,如果一个方法只需要点击按钮触发,不需要其他地方调用
          5. 只需要在.m文件中实现
          6. 不需要.h文件中声明
        10. 控件连线
          1. 目标 将Text中的文字,连接到代码的变量中
          2. 对于只需要在ViewController中使用的控件(属性),我们一般声明在类扩展中
          3. UI控件都使用weak,因为UI控件需要连线,也需要添加标示IBOutlet
          4. 然后再用拖动拉线的方式,实现连接
          5. 另外,不用实现定义属性,而是直接将控件 按着control连线拖到类扩展中,会弹出信息框选择后,会自动生成一个属性
        11. 回收键盘值
          1. NSLog(@"%@",self.filed1.text);
          2. 将文本框中的文字在控制台中显示出来
          3. 将Text中的值取出,并转化为int
          4. int number1 = [self.filed1.text intValue];
          5. 将计算结果int值,转为String显示在Lable
          6. self.sumlable.text = [NSString stringWithFormat:@"%d",sum];
        12. 收回键盘
          1. 按下计算按钮后回收焦点
          2. 方法1
          3. 找到对应控件,调用方法
          4. [self.filed1 resignFirstResponder];
          5. 方法2
          6. 取消控制器view的编辑状态
          7. [self.view endEditing:YES];
        13. UIKit的坐标系
          1. 通过调整控件的显示坐标
          2. 精确控制控件的位置
        14. view的常见属性
          1. UI界面上,看到的所有东西都是UIView
          2. 所有控件都直接或间接继承于UIView
          3. UIView是一个容器里面可以添加其他控件
          4. 可以通过UIView来制作一些最纯粹的界面
          5. 例子中学习到了两点
          6. 如何获取父控件
          7. 如何修改父控件的颜色
          8. 随机改变父控件的颜色
          9. 随机颜色的生成
          10. 另外一种上色的方式
        15. 使用代码来创建view
          1. 代码
          2. UIView *createView = [[UIView alloc]init]; // 生成一个随机颜色 float randomR = arc4random_uniform(255)/255.0; float randomG = arc4random_uniform(255)/255.0; float randomB = arc4random_uniform(255)/255.0; UIColor *randomColor = [UIColor colorWithRed:(randomR) green:(randomG) blue:(randomB) alpha:1]; // 新控件上色 createView.backgroundColor = randomColor; // 代码修改控件的长宽属性等,大小也是随机的 float x = arc4random_uniform(600); float y = arc4random_uniform(600); float width = arc4random_uniform(50); float height = arc4random_uniform(80); createView.frame = CGRectMake(x, y, width,height); // 将新控件,加入到 最外面的白控件中 [self.whiteView addSubview:createView];
          3. 1.定义一个view
          4. 2.给这个view添加颜色大小位置等属性
          5. 注意添加所使用的函数
          6. 3.将白色的外层view 作为一个变量添加到 m文件中
          7. 4. 将新控件加入到外层view中
    3. 打印地址用 %p
    4. extern的意思
  2. 0421
    1. 斯坦福IOS视频
      1. 概览
        1. 前提
          1. 学习过面向对象
          2. IOS是个完全面向对象的系统
        2. IOS 结构
          1. CocoaTouch
          2. MultiTouch
          3. WebView
          4. Cameraなど跟用户互动的部分
          5. Media
          6. Audio
          7. PDF/JPEG
          8. Videoなど
          9. CoreServices
          10. Collection
          11. CoreLocation
          12. FIleAccess
          13. SQLite
          14. NetServicesなど
          15. CoreOS
          16. OSX Kernel
          17. FileSysytem
          18. Socketsなど
        3. Swift与OC
          1. 本质上两语言非常类似
        4. MVC设计模式
  3. UIKit关联
    1. UITextField
      1. UIControl
        1. UIView
          1. UIView : UIResponder <NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem, UITraitEnvironment, UICoordinateSpace, UIFocusEnvironment>
          2. 上述语法意思是什么