- 博客(37)
- 资源 (15)
- 收藏
- 关注
原创 NSDate的常用用法
1. 创建或初始化可用以下方法 用于创建NSDate实例的类方法有 + (id)date; 返回当前时间 + (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs; 返回以当前时间为基准,然后过了secs秒的时间 + (id)d
2012-12-27 17:22:07 336
原创 iPhone UI元素大小
UI 元素大小" style="border:none; margin:0px; padding:0px">lement元Size (in points)大小Window (including status bar)窗口(包括状态栏)320 x 480 pts Status Bar状态栏( Howto hide the statusbar )
2012-09-08 09:23:21 449
原创 Objective-C学习笔记
Objective-C 是编写 Mac 软件的主要语言。如果你适应基本的面向对象和C语言,Objective-C会给向你展示许多这些内容。如果你不知到C,你应当先阅读 C 指南[英文]。 这个指南由Scott Stevenson撰写并排版。 1. Calling Methods 为了尽快开始,让我们先来看一些简单的例子。调用某个对象的方法的一些基本语
2012-08-31 15:37:20 726
原创 Storyboard里面的几种Segue区别:push,modal,popover,replace和custom
在storyboard中,segue有几种不同的类型,在iphone和ipad的开发中,segue的类型是不同的。在iphone中,segue有:push,modal,和custom三种不同的类型,这些类型的区别在与新页面出现的方式。而在ipad中,有push,modal,popover,replace和custom五种不同的类型。 modal 模态转换
2012-08-30 16:35:26 675
原创 IOS生命周期
iOS app life cycle 生命周期图 第一步: Main有C相关语言开发经验的朋友都知道,所有程序运行都是从 main 程序开始的。#import #import "NoteNavAppDelegate.h"int main(int argc, char *argv[]){ @autoreleasepool { retu
2012-08-30 16:32:44 568
原创 IBOutlet和IBAction
IBOutlet和IBAction 是为了你在interface building 设计交互界面的时候告诉它这些是你要用到的,其他的没标明的都是不需要直接和界面交互的。 简单理解: 假设有两个黑盒子: 盒子A里放着代码 ,盒子B里放着盒子A要用到的ui组件 要想让A里的代码访问到B里的组件,比如想要修改label的文字 ,那些就要从A处打个洞连到B处,这时就
2012-08-30 16:29:48 524
原创 Objective C 属性
为每一个变量实现其访问器,繁琐,@property 可以替我们减轻工作。 是否暴露读写接口readonly将只生成getter方法而不生成setter方法(getter方法没有get前缀)。 readwrite默认属性,将生成不带额外参数的getter和setter方法(setter方法只有一个参数)。
2012-08-30 16:28:17 726
原创 Objective C中NULL、Nil、nil、NSNull 的区别
NULL Values These macros define null values for classes and instances. NULL可以用在C语言的各种指针上 #define __DARWIN_NULL #define __DARWIN_NULLConstants c 特有的,例子:int *pointerToInt = NULL; char
2012-08-30 16:25:10 918
原创 XCode 4.3.2 如何新建 Window-based Application
XCode 4 以后,项目模版中没有了 Window-based Application,跟它比较接近的项目模版是 Empty Application. 如下图的选择:我们想建一个 Window-based Application,需要在 Empty Application 基础上做一些设置。下面是操作步骤,新建一个 Empty Application
2012-08-30 16:04:16 460
原创 iOS应用开发新手教程:iOS5 UIKit新特性
现在有了ios5了,UIKit添加了许多控件元素的外观。开始前的准备首先请下载这个初始项目(http://www.raywenderlich.com/downloads/SurfsUpStarter.zip)我已经创建好了一个简单的应用,这样大家就可以把重点放在学习如何定制UIKit界面元素上。当你打开项目之后,先看看其中的代码和XIB文件。你会发现主视图呈
2012-08-29 08:58:20 2178
原创 Objective-C 方法、属性
这次,我们介绍Objective-C是如何定义一个完整的类。定义一个类都包括哪些部分,为了简单明了,更加直接,列举了一个20多行代码的小例子。那么,让我们先看下面这个简单的例子:1234567891011#import //引用Foundati
2012-08-16 16:48:28 663
原创 Objective-C 方法、属性
123456789101112#import @interfaceFraction:NSObject{ intnumerator; //声明变量 int
2012-08-16 16:46:23 796
原创 Objective-C 类的继承、方法重载
这次,我们讲解在Objective-C中如何进行类的继承以及方法的重载。按照惯例,我们还是先拿出一个重载的小例子,以例子为基础展开讲解。123456789101112131415#import @in
2012-08-16 16:43:19 873
原创 Objective C 策略模式
策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用类之间的耦合。 下面我把策略模式的类层次结构图展示如下:如图所示,Strategy类层次为Context定义了一系列的可供重用的算法和行为,继承有助于析取出这些算法中的公共功能。下面我用一个普通超市里收费的例
2012-08-16 16:37:57 814
原创 Objective C 装饰模式
首先,简单介绍一下装饰模式(Decorator)。 装饰模式(Decorator),动态地给一个对象添加一些额外地职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式主要是为已有功能动态地添加更多功能的一种方式。当系统需要新功能的时候,是向旧的类中添加新的代码。这些新加的代码通常装饰了原有类的核心职责或主要行为。 下面我把类的结构图向大家展示如下:
2012-08-16 16:34:35 812
原创 Objective C 代理模式
代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 那么,代理模式一般都在什么情况下使用呢?大体可以分为以下四种:远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。安全代理,用来控制真实对象
2012-08-16 16:31:40 746
原创 Objective C 工厂方法模式
工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 早在第一次和大家分享的关于简单工厂模式中就有提到过一次关于“工厂类”模式。为了帮助大家能够回忆一下简单工厂模式,在这里提一下简单工厂模式的优点,简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对
2012-08-16 16:30:02 1314
原创 Objective C 原型模式
原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节,其实我觉得就是多了一个克隆方法而已,所以呢,看起来挺简单的一个功能竟然也是设计模式里的一种,老实说多少有些惊讶哦! 好啦,在继续下面之前,先简单说明一下拷贝(Copy)这个概念。在这个模式里
2012-08-16 16:25:28 826
原创 Objective C 模板方法模式
模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 下面和给大家展示一下类的结构图: 其实,结构很简单,只有两层关系,核心思想就是把公共方法向上提到父类中。代码实现起来也不复杂。下面还是老样子,向大家简单展示一下代码如何实现。=============
2012-08-16 16:23:47 1388
原创 Objective C 外观模式
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义 一个高层接口,这个接口使得这一子系统更加容易使用。 下面给大家展示一下类的结构图,想必大家一看就明白了: 其实这个模式中,没有类与类之间的继承关系,只是进行了简单的类引用,统一了对外的接口而已。看起来是不是很简单?废话不多说了,下面简单向大家展示一下代码吧!SubS
2012-08-16 16:19:45 790
原创 Objective C 建造者模式
如果你需要将一个复杂对象的构建于它的表示分离,使得同样的构建过程可以创建不同的表示的意图时,那我们就需要这个模式,建造者模式又叫生成器模式。建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。如果我们用了建造者模式,那么用户就只需要指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道了。 下面给出建造者模式的
2012-08-16 16:16:18 729
原创 Objective C 观察者模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 下面还是先给大家展示一下类关系图。 其实这个结构也还算清晰啦。简单说两句,其中ConcreteSubject类型继承自Subject类,属于抽象通知者,相当于发出信号的人。而ConcreteObs
2012-08-16 16:12:43 1017
原创 Objective C 状态模式
状态模式(State),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 其实,状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。说白了,目的就是为了消除庞大的条件分支语句。 这次想通过一个具体的例子,和大家一起学习状态模式。例子的内容是一天不
2012-08-16 16:09:01 646
原创 Objective C 适配器模式
适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式主要解决了什么问题呢? 答:系统的数据和行为都正确,但接口不符时,我们应该考虑适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一
2012-08-16 16:05:37 778
原创 Objective C 备忘录模式
备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 定义看起来搞的很专业,其实就是保存上一个状态,以便日后恢复用。好比是在玩游戏,在打大Boss之前担心第一次打不过,先存个盘,万一玩儿完了,还可以恢复状态重新PK。 下面给出类结构图。 从上面
2012-08-16 14:49:35 630
原创 Objective C 组合模式
组合模式(Composite),将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式的适用场合是,一般当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中地所有对象时,就应该考虑使用组 合模式了。组合模式定义了基本对象和组合对象的类层次结构。基本对象
2012-08-16 10:58:00 926
原创 Objective C 迭代器模式
迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 那么一般在什么时候才会用迭代器模式呢?当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式。另外,当你需要对聚集有多种方式遍历时,也可以考虑用迭代器模式。 说了这么多,下面给大家展示一下类关系图。
2012-08-16 10:03:33 843
原创 Objective C 单例模式
顾名思义,单例模式的特点就是保证一个类仅有一个实例。因为这个模式只和一个类有关,没有类与类之间的关系,所有就不给出图示了。那么还是先说一下基本的定义。单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类
2012-08-15 17:10:01 730
原创 Objective C 命令模式
命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或纪录请求日志,以及支持可撤销的操作。 那么让我们简要的说一下命令模式的特点。它能比较容易地设计一个命令队列;在需要的情况下,可以较容易地将命令记入日志;允许接收请求地一方决定是否要否决请求;可以容易地实现对请求地撤销和重做
2012-08-15 16:38:37 794
原创 Objective C 职责链模式
职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 职责链模式的一个很重要的特点是,当客户发出请求之后,客户端并不知道哪一个对象最终处理这个请求,这样系统的更改可以在不影响客户端的情况下动态地重新组织和分配责任。
2012-08-15 15:36:06 605
原创 Objective C中介者模式
中介模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使用其耦合松散,而且可以独立地改变它们之间的交互。 下面先给出类结构图,再做简单解释。 中介者模式很容易在系统中引用,但是也比较容易误用。所以当系统出现了“多对多”交互复杂的对象群时,不要急于使用中介者模式,而要先反思系统在设计上是不是合理。
2012-08-15 14:27:44 604
原创 Objective C 享元模式
享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象。 享元模式可以避免大量非常相似类的开销。在程序设计中,有时需要生成大量细粒度的类实例来表示数据。如果能发现这些实例除了几个参数外基本上都是相同的,有时就能够受大幅度地减少需要实例化的类数量。如果能把那些参数移到类实例的外面,在方法调用时将它们传递进来,就可以通过共享大幅度地减少单个实例的数目。 下面先给
2012-08-15 13:50:37 2050
原创 Objective C 解释器模式
首先介绍一下解释器模式适合解决哪类问题。 其实,解释器模式需要解决的问题是,如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。 就应用的例子来说,例如正则表达式就是它的一种具体应用,解释器可以为正则表示定义一个文法,如何表示一个特定的正则表达式,以及如何解
2012-08-14 17:36:22 610
原创 Objevtive C 访问者模式
访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 访问者模式类结构图。 访问者模式适用于数据结构相对稳定的系统,它把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作结合可以相对自由地演化。 访问者模式的目的是要把处理从数据结构分离出来。很多系统
2012-08-14 16:42:04 780
原创 Objective C 抽象工厂模式
抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 其实,我个人的理解是,抽象工厂模式顾名思义,就是抽象出一个接口层,然后结合工厂模式。呵呵,听起来跟没说一样,好吧,还是先给大家看一下数据库访问的类结构图吧。 好的,简单分析一下上面这张类结构图,这张图中有三个独立的模块儿,一个是I
2012-08-14 16:32:52 1429
原创 Objective C 简单工厂模式
正如此模式的名称一样,简单工厂模式基本上是所有设计模式里最简单的一种,类与类之间的关系一目了然。这次我就用很多地方经常举的例子--计算器,来说明这个模式。首先给大家展示一下类之间的结构图:通过这张结构图,可以清晰的看到,加法类、减法类、乘法类、除法类继承自运算类,简单工厂类依赖于运算类的实例化来实现相应的运算功能,好的,看起来并不复杂,让我们直接展示一下代码吧(鉴于目前点点
2012-08-14 15:30:54 1369
原创 Objective C桥接模式
合成/聚合复用原则(CAPP),尽量使用合成/聚合,尽量不要使用类继承。 合成(Composition,也有翻译成组合)和聚合(Aggregation)都是关联的特殊种类。聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分;合成则是一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。打个比方说,小鸟有两个翅膀,翅膀与小鸟
2012-08-14 15:02:16 2391
Objective C 装饰模式设计源码
2012-08-17
Objective C 策略模式设计源码
2012-08-17
Objective C 组合模式设计源码
2012-08-16
Objective C 迭代器模式设计源码
2012-08-16
Objective C 单例模式设计源码
2012-08-15
Objective C 命令模式设计源码
2012-08-15
Objective C职责链模式设计源码
2012-08-15
Objective C 中介者模式设计源码
2012-08-15
Objective C 享元模式设计源码
2012-08-15
Objective C 解释器模式设计源码
2012-08-14
Objective C 桥接模式设计源码
2012-08-14
Objective C 访问者模式设计源码
2012-08-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人