IOS基础学习日志(一)

                                                                                                              IOS基础学习日志(一)

    今天我们开始学习IOS操作技术,IOS操作系统是用Objective-C来编写的,而Objective-C语言又是建立在C语言基础之上的,究极根本不管学习IOS、还是Objective-C,都应该首先将C语言学好。接下来,我即将向大家介绍我们今天学习的一些IOS操作系统的基础知识,如下:

1、 interface builder简介:

InterfaceBuilderIB)是Mac OS X平台下用于设计和测试用户界面(GUI)的应用程序(非开源)。为了生成GUIIB并不是必需的,实际上Mac OS X下所有的用户界面元素都可以使用代码直接生成;但IB能够使开发者简单快捷的开发出符合Mac OS X human-interface guidelinesGUI。通常你只需要通过简单的拖拽(drag-n-drop)操作来构建GUI就可以了。IB使用Nib文件储存GUI资源,同时适用于CocoaCarbon程序。在需要的时候,Nib文件可以被快速地载入内存。[1]

InterfaceBuilder工具是在iPhone SDK中提供的。该工具通常用于Mac OS X开发和iPhone应用程序开发。Interface Builder提供了拖放面板以供iOS开发人员将控件拖放到屏幕上。

1、设计模式简介:

设计模式概念:

为常见问题提供一组通用、可复用、经过测试的解决方案。设计模式,使代码编程工程化,是软件工程的基石。

有四个基本要素:1、设计模式;2、问题;3、解决方案;4、效果。设计模式是对被用来在特定的场景下解决一般设计问题的类和相互通信的对象的描述。

描述一个设计模式的主要从以下的几面来进行:模式名和分类;意图;别名;动机;适用性;结构;参与者;协作;效果;实现;代码示例;已知应用;相关模式。

设计模式的分类主要有两种,其一是根据目的准测分类,即模式是用来完成什么工作的;其二是范围准则,指定模式主要是用于类还是用于对象。

2、如何选择设计模式?

1.考虑设计模式是怎么样解决设计问题的。注意各个模式对于找到合适的对象、决定对象的粒度、指定对象的接口的影响。

2.浏览模式的意图部分。通读每个模式的意图,找到和问题相关的一个或多个模式。

3.研究模式怎么样相互关联。

3、什么是沙盒?

IOS SDK的沙盒规则是,所有程序自己的数据和文件都存放在一个独享的,自己的随机生成的目录路径下(生成一次,以后一直用),程序不能访问沙盒和除了系统允许的(例如照片)目录以外的其他任何目录。

4、理解xib(nib)File’s OwnerFirst Responderoutletaction等概念

xib(nib)都是一些对象的描述,类似与VC.rc资源文件。nib是二进制格式,xib是单一的xml文档,便于源代码版本管理。现在新版本的Xcode 在创建项目时,已经默认使xib格式的文档了。在build的时候,xcode会把xib都转换为nib(反序列化效率高)。app启动的时候会根据xml构造xib对应的界面及其控件。

 File’s Ownerxib对应的类,比如UIViewFile’s Owner就是视图控制器UIViewController

First ResponderViewViewController之间的对应关系,需要一个桥梁来进行连接的(即,对于一个视图,他如何知道自己的界面的操作应该由谁来响应),这个桥梁就是File's Owner。当前响应用户触摸的对象。在应用程序生命周期内, First Responder 在用户与屏幕交互时变化。例如,假设有一个表单。当用户触摸表单中的某个文本域时,那个文本域将成为活动文本域,并担当 First Responder 的角色。

 outlet可以理解为一个指针指向了nib中的控件对象,我们可以通过输出口来操作这个控件。

 action触发一个控件后这个控件执行的方法。

5View的相关定义及初始化:

自定义View要做的事情

1.初始化:

对于在程序中创建的View,重写initWithFrame初始化。

对于在nib中载入的View,重写initWithCoder初始化。

nib文件载入完成后,可以使用awakeFromNib处理其他初始化操作。awakeFromNibinitWithCoder之后执行。

注意:要使用[super initXXX]来调用父类的初始化函数。

2.重写dealloc析构。注意要使用[super dealloc].

3.重写drawRect实现绘制。

4.设置autoresizingMask来设置View大小改变时的自动操作。

5.对于subView

在初始化函数里创建。

设置autoresizingMask

重写layoutSubviews实现布局。

6.使用addGestureRecognizer来添加手势识别对象,重写

touchesBegan

touchesMoved

touchedEnded

touchedCancelled

来处理手势事件。

使用MultipleTouchEnable来打开多重手势。

使用UserInteactiveEnable来打开手势识别。

使用BeginIgnoringInteractionEventEndIgnoringInteractiveEvent来忽略当前事件。

使用hitTestpointInside来检测手势是否发生在当前View中。

7. 使用DrawRect实现打印。

6MVC的相关定义:

什么是MVC

越来越多的开发者们专注于ios的开发,他们开发的相当一大部分应用软件都给人以美的享受,究竟是什么使得ios上的应用可以如此漂亮?因为他们使用了将代码和界面分开的开发结构框架MVC

MVC即是Model-VIew-Controller三个英文单词的缩写,中文翻译为模型视图控制器MVC并非只有ios应用软件独有的应用开发模式,它被广泛应用在许多软件(尤其是中大型软件)的开发上。MVC把软件系统分为三个部分:ModelViewControllerModel相当于应用的底层,应用在功能上的实现完全依赖于Model,打个比方,如果是一台电脑的话,Model就是你机箱里的所有东西:cpu,内存,硬盘,显卡等的一个集合,你不必看到它们,但它们必不可少;Controller就是控制器,它控制ModelView的交互,它将MV捆绑在一起,将你的操作传达给Model,再控制View将其表现出来。View相当于电脑的图形界面,将Model的运行结果可视化地呈现给用户,你在屏幕上看到的一切都可以归类于View

cocoa中,你的程序中的每一个object(对象)都将明显地仅属于这三部分中的一个,而完全不属于另外两个。因此,用MVC开发的应用软件更易于进行维护和修改,不用因为底层的Model出了问题而去影响表层的ViewMVC虽然把三部分独立了出来,但三部分之间仍然存在联系,但就如下图所示,ModelView之间是完全独立的,两者各自运行,以Controller为桥梁进行交互,并不发生直接关联。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值