结构 说明 Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language. 给定一个语言, 定义它的文法的一种表示,并定义一个解释器, 该解释器使用该表示来解释语言中的句子。 适用条件 当有一个语言需要解释执行, 并且可以将语言中的句子表示为一个抽象的表达式树时, 可以使用解释器模式。 实现 以逆波兰表示法为例, 其语法为: ex... 阅读全文

结构 说明 This pattern encapsulates a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations. 这个模式将请求封装成一个对象, 从而可以不用的请求对客户进行参数化, 对请求排队或者记录请求日志, 以及支持可以取消的操作。 适用条件 行为需要扩充, 将命令作为对象处理, 新的行为可以通过扩充子类完成; 命令需... 阅读全文

结构 说明 This pattern avoids coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. It chains the receiving objects and passes the request along the chain until an object handles it. 使多个对象都有机会处理请求, 从而避免了请求的发送者与接收者之间的耦合。 将接收对象组成链, 在链上传递请求,... 阅读全文

设计模式概述 2013-10-21

设计模式四人帮 设计模式四人组GoF(“四人帮”,又称Gang of Four,即Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides四人)的《设计模式》,原名《Design Patterns: Elements of Reusable Object-Oriented Software》(1995年出版,出版社:Addison Wesly Longman.Inc),第一次将设计模式提升到理论高度,并将之规范化。该书提出了23种基本设计模式。时至今日,在可复用面向对象软件的发展过程中,新的设计模式仍然不断出现。 ... 阅读全文

新建 Xcode workspace 打开 Xcode , 选择 File -> New -> Workspace , 将 Workspace 命名为 Test.xcworkspace , 并选择合适的目录。 新建 Static Library 项目 选择 File -> New -> Project , 项目模板选择 Cocoa Touch Static Library , 项目名称命名为 MyLib.xcodeproj , 注意选中 Use Automatic Reference Counting 。 Xcode 会在项目中自动生成 MyLib... 阅读全文

initWithFormat 还是 stringWithFormat ? initWithFormat 是实例方法,用法如下: NSString* str = [[NSString alloc] initWithFormat:@"%@", @"Hello, world!"]; self.label.text = str; [str release]; 如果是运行在在 iOS 5.0 之前或者没有使用 ARC 的情况下, 需要手工调用 release 方法进行回收。 stringWithFormat 是类方法, 用法如下: NSString* str = [NSString ... 阅读全文

在 Ubuntu Server 上安装和配置 Apache2 + Mono 生产环境的记录。 服务器环境是 Ubuntu Server 13.04 虚拟机模式 (Virtual Machine Mode), 安装的 Mono 的版本是 3.2.1 , 最终环境如下图所示: 准备编译环境 还是老话题, 先准备 GCC 编译环境, 这样才可以从源代码编译安装所需要的软件。 首先需要安装的是基本的编译工具, 只要输入下面的命令即可: sudo apt-get install g++ gettext autoconf 接下来输入用户名和密码, 就可以自动安装必须的命令行编译工具... 阅读全文

本文介绍如何在 Xamarin.iOS 项目中使用使用 ArcGIS Server 云端专题数据, 假设你已经准备好了 ArcGIS Client Runtime SDK for iOS 和 MonoTouch.ArcGIS 绑定项目。 ArcGIS API 提供的专题图层 (AGSFeatureLayer) 可以用来访问并编辑矢量地图数据, 它依赖于 ArcGIS 服务器专题服务 (Feature Service) , 专题服务不仅可以浏览和编辑数据, 还可以使用类似 SQL 的语法对数据进行过滤, 专题服务可以托管在 ESRI 的 ArcGIS Online 云中, 也可以部署在自... 阅读全文

ArcGIS SDK for iOS 简介 ArcGIS SDK for iOS 是 ESRI 公司针对 iOS 平台的 GIS 解决方案, 以 iOS Framework 的形式提供, 与 iOS 自带的 MapKit 相比, 提供了很多强大的地图以及分析功能, 如果你要想要在 iOS 平台上实现类似下图的应用, ArcGIS SDK for iOS 是不错的选择。 点击这里了解更多功能。 在 Xcode 项目中使用 ArcGIS SDK 下载并安装 ArcGIS SDK for iOS 在 iOS 项目中使用ArcGIS SDK for iOS, 需要有一个 E... 阅读全文

【感谢@Hacker_YHJ 的热心翻译。如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线。】 本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础。如果你不讨厌事无巨细,请尽情阅读吧。 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具。本文将从C语言函数指针的基础开始介绍,再结合一些简单的用法和关于函数名称和地址的趣闻。在最后,本文给出一种简单的方式来看待函数指针,让你对其用法有一个更清晰的理解。 函数指针和一个简单的函数 我们从一个非常简单的”Hello World“函数入手,来见识一下怎样创建一个函数指针。 #inc... 阅读全文

启动模拟器 使用 emulator -avd <name> 来启动指定的安卓模拟器, 例如, 我的电脑上配置了下列模拟器: 要启动名称为 “JB_Pad” 的模拟器, 只要输入下面的命令即可: emulator -avd JB_Pad 设置屏幕缩放 上面的命令启动的模拟器是按照配置的实际分辨率启动的, 模拟器配置的是 800x400 就启动一个 800x400 的窗口, 如果配置的是 720x1280 就会启动一个 720x1280 的窗口, 这样不仅操作起来麻烦(模拟器只能用鼠标模拟触控), 而且会占用更多的资源, 最重要的是, 通常手机都没那么大吧, 所... 阅读全文

动画为用户界面的状态转换提供了流畅的可视化效果, 在 iOS 中大量使用了动画效果, 包括改变视图位置、 大小、 从可视化树中删除视图, 隐藏视图等。 你可以考虑用动画效果给用户提供反馈或者用来实现有趣的特效。 在 iOS 系统中, Core Animation 提供了内置的动画支持, 创建动画不需要任何绘图的代码, 你要做的只是激发指定的动画, 接下来就交给 Core Animation 来渲染, 总之, 复杂的动画只需要几行代码就可以了。 哪些属性可以添加动画效果 根据 iOS 视图编程指南中说明, UIView 内置支持为下列属性添加动画效果: Frame 可以改变视... 阅读全文