IOS 杂记

·楼主经历过C 开发,java 开发,现在开始ios开发。准备只学习swift 语言,第一个阶段的目标是完成遥控器的开发。

语言:

主流是Object-C 以及Swift。
Object-C 主要用于IOS开发。是在C的基础上,加入了面向对象特性而成的语言。
Swift是苹果公司在2014年发布的全新开发语言。Swift内在依然是Object-C,但Swift大大地降低了开发门槛。至今天,已经发布3年。

工具:

xcode
撤销:command+z
实用工具区域(上):command+option+(1-6)
实用工具区域(下):command+option+(1-4)
助手编辑器:command+option+Return

模拟器:

Home按键:
单击:Command+shift+H
双击:Command+shift+H 按两次
截图:Command+S (一定要选中模拟器)

复制 剪切

  • command +c
  • command +v :复制
    command +option + v 剪切

屏幕适配

  • Xcode 5 中引入了自动布局特性:这样可以将可视化对象在界面中的绝对位置变成对象与对象之间的相对关系。只要为Iphone Ipad 分别设计一套界面即可。
  • Xcode 6 中苹果又引入了 Size Classes特性,通过它程序员可以只设计一个通用的界面,从而支持所有的Iphone 和Ipad 设备。
  • 自动布局: 如果说在Xcode 5中使用自动布局特性还是一种可选方式,那么在Xcode 6中,它就是唯一的用户界面搭建方式了。

MVC设计模式

  • 它是iso 中最重要的,也是使用最多的一种设计模式
    模型(model)-视图(view)-控制器(controller)
  • MVC设计模式的目的就是将应用程序的用户界面代码、程序逻辑和数据处理代码彼此分离。Model 封装了应用程序的数据,View负责呈现和管理用户界面,Controller 则是提供应用程序的基本逻辑,并作为Model 和 View的中间人
  • 当用户与View 进行交互时,Controller 可以命令Model 修改数据。当Model 数据发生变化时,Controller 也要通知View进行界面更新。
  • 这样做的意义在于:Model 和View 之间不会发生任何联系,Model只负责存储和处理数据,当控制器调用数据时,Model只要完成自己的任务就好。

简而言之,MVC设计模式要求在IOS应用程序开发过程中,所有的对象都必须属于这三大阵营中的一个。

UIKit 组织架构图

视图控制器

  • 导航控制器
    已层级结构的形式来管理其堆栈中的多个视图控制器。在导航控制器中,我们把其中的第一个视图控制器叫做根视图控制器(root view controller)。
    设置应用程序中,使用的就是导航控制器。
  • 标签控制器
    标签控制器(tab bar view controller),提供分割不同的视图控制器的一种简单方式。标签栏是该控制器的标志元素,苹果的“电话” 应用就使用了该控制器。每个标签包含一个独立的控制器
  • 表格视图控制器
    它包含了一个单独的表格视图,表格视图允许我们以单元格的格式一行行地显示数据信息,并且还可以对数据进行分组。

命名stuff

  • NS 代表什么??
    NextStep的缩写,是老乔被Apple扫地出门后自创办的公司。乔重返,把他们带回了苹果
  • Optional
    在swift 语言里,是可选择的意思。 修饰接口,表示这个接口可以不用实现。

疑问?

  • 为什么ViewController 要添加 delegate 和data source 关联?
    正常显示的tableView 把关联去掉后,就无法显示,这说明关联是必须的。那么关联究竟是什么鬼??
  • 导航控制器
    Navigation controller, 它是组织多个视图控制器的一个主力军,它是基于栈的,也就是说最新入栈的视图控制器是可见的。

开放中遇到的问题汇总:

  • build successed,无法启动模拟器
    进入到Product项下,选择Scheme,单击Edit Scheme,切换到info下在executable中选择自己的项目,关闭设置页,重新在Xcode下运行项目一切OK。
    由于同一工程配置了子项目,导致

适配

  • Autoresizing
    IOS 杂记_第1张图片

    优势:
    让横竖屏适配相对简单
    让子控件可以跟随父控件行为自动发生相应的变化
    前提是:关闭Autolayout功能
    局限性:
    只能解决子控件和父控件的相对关系问题
    不能解决 兄弟控件的相对关系
    实现方式:
    故事面板、代码
  • AutoLayout
    从IOS 6.0 开始应用,从xcode5 (iOS7.0)开始开始真正得到推广
    两个核心概念:
    参照、约束
    常用面板01-约束处理
    IOS 杂记_第2张图片

    常用面板02-相对
    IOS 杂记_第3张图片

    常用面板03-对齐
    IOS 杂记_第4张图片

Mac 文件的搜索

mac找不到private/etc:
find (点击)——前往 (点击)——电脑 (选电脑)——Macintosh HD(打开) ——前往(再次点击)——前往文件夹—— etc(输入etc 点击即可)

swift与OC的混编--创建桥接头文件

新建一个头文件,在Objective -C Bridging Header设置头文件路径

  • 右键-->new files
  • 创建名为MusicDemo-Bridging-Header的头文件
  • target--> Build Settings -->Objective -C Bridging Header
  • 双击紫色框中的内容,然后从工程中把刚刚创建的头文件拖进来,如图所示,点击空白处消失。
  • 在桥接文件中导入所需的头文件
  • 在ViewConreoller中调用。
    是不是可以愉快的调用OC的方法了吖 ?

你可能感兴趣的:(IOS 杂记)