
iOS
文章平均质量分 55
Lee的博客
关注大规模数据处理相关开源技术,包括:YARN/MRv2,MRv1,HDFS
展开
-
设计模式-观察者模式
【应用场景】一般为model层,对controller和view进行的通知方式,不关心谁去接收,只负责发布信息。【优势】解耦合(减弱对象之间的耦合程度)、接口隔离原则(分散定义多个接口,预防外来变更的扩散,提高系统的灵活性和可维护性)【应注意】设计接口的时候,花些时间去思考和筹划,才能准确地实践这一原则;个人用的时候发现观察者会接收到多次相同的通知,造成泛滥聊天信息的后果。原创 2014-03-28 17:38:50 · 668 阅读 · 0 评论 -
gnustep 在ubuntu 11.04下安装
1. 在软件中心安装 gnustep原创 2014-11-11 09:45:56 · 737 阅读 · 0 评论 -
UIView中的坐标转换
// 将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;// 将像素point从view中转换到当前视图中,返回在当前视图中的像素值- (CGPoint)convertPoint:(CGPoint)point from原创 2014-10-23 19:56:22 · 466 阅读 · 0 评论 -
二.cocoa touch 之 TextKit
在程序中,通过Text Kit可以对文字进行存储(store)、布局(lay out),以及用最精细的排版方式(例如文字间距、换行和对齐等)来显示文本内容。 苹果引入Text Kit的目的并非要取代已有的Core Text,Core Text的主要作用也是用于文字的排版和渲染中,它是一种先进而又处于底层技术,如果我们需要将文本内容直接渲染到图形上下文(Graphics context)时,从性原创 2014-10-24 08:48:55 · 931 阅读 · 0 评论 -
一.了解 iOS 操作系统架构
首先看一下Mac OS 和 iOS 系统架构的对比图:原创 2014-10-22 10:20:36 · 5859 阅读 · 0 评论 -
iOS中的堆(heap)和栈(stack)的理解
当应用开始以后,函数main() 被调用,一些空间分配在”stack” 中。这是为应用分配的另一个段的内存空间,这是为了函数变量存储需要而分配的内存。每一次在应用中调用一个函数,“stack ”的一部分会被分配在”stack” 中,称之为”frame” 。新函数的本地变量分配在这里。正如名称所示,“stack ”是后进先出(LIFO )结构。当函数调用其他的函数时,“stack frame ”原创 2014-09-16 15:51:49 · 838 阅读 · 0 评论 -
head first 读书笔记:策略模式(针对接口编程,而不是针对实现编程)
head first 学习笔记:设计鸭子应用原创 2014-05-08 10:28:15 · 1288 阅读 · 0 评论 -
head first 读书笔记:观察者模式(openfire 消息通知 demo)
场景:我们要从openfire服务器获取消息,然后原创 2014-05-12 15:38:34 · 790 阅读 · 0 评论 -
使用CocoaPods来做iOS程序
CocoaPods的安装和使用介绍安装安装方式异常简单, Mac下都自带ruby,使用ruby的gem命令即可下载安装:12$ sudo gem install cocoapods$ pod setup上面第二行执行时,会输出Setting up CocoaPods master repo,但是会等待比原创 2014-04-02 10:36:37 · 1122 阅读 · 0 评论 -
MAC 安装CocoaPods简易教程
首先打开控制台输入 sudo gem install cocoapods之后提示输入密码,又等待数分钟后终于成功第二步,键入pod setup注:更新 CocoaPods 的命令sudo gem update cocoapods这样就安装成功了原创 2014-04-02 10:29:05 · 845 阅读 · 0 评论 -
iOS 笔记
1.配置全局为中文,例如输入框弹出“全选”打开 info.plist 将Localization native development region 设置为china ;选择project 点击 info 在 localizations 添加 Chinese(Simplified)2.节约内存读取本地文件NSMutableData *data = [NSMutableDatad原创 2014-04-01 14:49:09 · 667 阅读 · 0 评论 -
设计模式-代理模式
【应用场景】当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。【优势】解耦合(减弱对象之间的耦合程度) 【应注意】不稳定。个人觉得在调用委托的时候容易出现程序崩溃,例如我声明了委托类:LCLChatDelegate.h 中的一个接收到信息的委托:-(void)didReciveZiXun:(NSDictionary *)zixunDic;实现委托原创 2014-03-28 17:33:33 · 760 阅读 · 0 评论 -
设计模式-策略模式
【应用场景】定义算法族,封装起来,使他们之间可以相互替换。个人觉得一般体现在MVC结构的逻辑控制层【优势】使算法的变化独立于使用算法的用户,提高系统的灵活性和可维护性【应注意】1,剥离类中易于变化的行为,通过组合的方式嵌入抽象基类2,变化的行为抽象基类为,所有可变变化的父类3,用户类的最终实例,通过注入行为实例的方式,设定易变行为防止了继承行为方式导致无关行为污染子原创 2014-03-28 17:48:51 · 664 阅读 · 0 评论 -
设计模式-工厂模式
【应用场景】工厂方式创建类的实例,多与proxy模式配合,创建可替换代理类。【优势】易于替换,面向抽象编程,application只与抽象工厂和易变类的共性抽象类发生调用关系。【应注意】项目初期,软件结构和需求都没有稳定下来时,不建议使用此模式,因为其劣势也很明显,增加了代码的复杂度,增加了调用层次,增加了内存负担。所以要注意防止模式的滥用。【敏捷原则】DIP依赖倒置原原创 2014-03-28 17:50:11 · 693 阅读 · 0 评论 -
设计模式-MVC模式
【应用场景】MVC模式是一中非常古老的设计模式,通过数据模型,控制器逻辑,视图展示将应用程序进行逻辑划分。【优势】使系统,层次清晰,职责分明,易于维护【应注意】如何建立好数据模型;如何实现C层对UI展现和数据交互的逻辑控制【敏捷原则】开放-封闭原则(对于扩展是开放的,对于更改是封闭的)【实例】model-即数据模型,view-视图展示,controller进行U原创 2014-03-28 17:42:47 · 674 阅读 · 0 评论 -
设计模式-单例模式
【应用场景】确保程序运行期某个类,只有一份实例,用于进行资源共享控制。【优势】使用简单,易于跨模块【应注意】确保使用者只能通过 getInstance方法才能获得,单例类的唯一实例和如何管理实例化后的内存。【敏捷原则】单一职责原则【实例】[UIApplication sharedApplication]注-单一职责原则:原创 2014-03-28 17:46:33 · 635 阅读 · 0 评论 -
二.cocoa touch 之 UIKit Dynamics
UIKit动力学实现的结构为了实现动力UI,需要注册一套UI行为的体系,之后UI便会按照预先的设定进行运动了。我们应该了解的新的基本概念有如下四个:UIDynamicItem:用来描述一个力学物体的状态,其实就是实现了UIDynamicItem委托的对象,或者抽象为有面积有旋转的质点;UIDynamicBehavior:动力行为的描述,用来指定UIDynamicItem应该如何运动原创 2014-10-27 14:55:15 · 821 阅读 · 0 评论