- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 Objective-C 类别小结
类别是一种为现有的类添加新方法的方式。利用Objective-C的动态运行时分配机制,可以为现有的类添加新方法,这种为现有的类添加新方法的方式称为类别catagory,他可以为任何类添加新的方法,包括那些没有源代码的类。类别可以将对象的实现分散到多个不同的源文件、甚至多个不同的框架中举例代码:头文件CatagoryThing.h包含类的声明和一些类别,导入Foundation框
2016-10-25 19:36:17
272
翻译 Objective-C Runtime Programming Guide 中文翻译
介绍Objective-C将许多决策从便宜时期和链接时期延后到运行时期。只要可能,它都动态的做很多事情。这意味着它不仅需要一个编译器,还需要一个运行时系统来执行编译好的代码。对于Objective-C来说,这个运行时系统就好像一个操作系统,使objective-c能够正常工作。本文探究NSObject类,以及Objective-C程序如何和运行时系统交互。通过阅读本文,你应该理解Objective-
2016-05-16 22:10:34
5423
原创 一个UI控件弱引用问题
今天学习的过程中看到如下代码:@interface ViewController ()@property (weak,nonatomic) UIButton *buttonA;@property (weak,nonatomic) UIButton *buttonB;@property (strong,nonatomic) UILabel *theLabel;- (void
2015-01-29 10:46:40
484
原创 ARC实践
一. 什么是引用计数Objective-C中对对象的内存管理可以用生成、持有、释放、废弃4个词来表示,其中生成就是alloc/new/copy/mutableCopy等方法,持有对象 通过retain来实现,释放对象是release操作,废弃对象是dealloc操作。当对象生成的同时自然也持有该对象。1. 自己生成并持有对象:// 生成并持有对象id obj = [[
2015-01-26 20:25:55
433
原创 几种在场景之间传递数据的方式
1. 对于modal类型的segue,直接使用presentingViewController和presentedViewController返回源控制器和目标控制器。在目的控制器中,使用presentingViewController获取源控制器,在源控制器重,使用presentedViewController获取目的控制器。如ViewController* originControll
2015-01-20 09:14:37
955
原创 为什么在viewDidLoad中调用presentingViewController返回nil?
ios7应用开发入门经典(第7版)p256页提到,对于modal类型的segue,可以通过presentingViewController和presentedViewController获取segue前后的controller。但在ios8中实践发现presentingViewController返回了nil. 这是什么情况?查阅stackoverflow,得到如下答案:When
2015-01-19 21:57:38
1211
转载 酷讯迷途反思:千万美元3年未找到真实市场
<br /> 它只用了几个月就获得千万美元风险投资,却用三年时间也找不到软着陆的真实市场。一个“热钱时代”宠儿的沦落轨迹。<br /> “现在,‘和稀泥’已经没用了。”面对《环球企业家》,酷讯网CEO张海军毫无掩饰之意,“我们前两年解决了‘做正确的事情’的问题,而我们去年的错误是没有‘正确地做事’”。因此,自年初开始,这家公司开始了主动求变的一切:裁撤不合适的管理者、削减冗员、重视运营……<br /> 通常,当一家创业公司的CEO如此真诚的袒露公司的错误,他会轻易获得足够多的
2010-07-05 21:44:00
778
原创 Spring学习笔记
1. IoC=Inversion Of Control,DI=Dependency Injection2. 三种注入方式:接口注入、设值注入(setter注入)、构造子注入3. Spring一个核心概念就是反向控制。任何一个系统中,至少有2个类合作完成业务逻辑,通常每个对象都要自己负责得到它的合作对象,这就导致代码耦合度高而且难以测试。所谓反向控制,就是获得依赖对象的方式反转了。对象的依赖
2009-11-15 22:25:00
316
原创 Effective Java
1. 对于Singleton,使用private的构造函数使其无法实例化,其唯一的实例定义为private static final的,并提供一个public static的getInstance方法以获取这个唯一的实例。 2. 避免创建重复的对象:重复使用同一个对象,而不是在在每次需要的时候都创建一个功能上等价的新对象。一个例子是:String s = new String("This
2009-11-15 15:37:00
277
转载 EasyMock简单使用方法
EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock 进行单元测试。 Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。编写自定义的
2009-11-15 15:26:00
743
转载 svn冲突解决
本人使用SVN的时间不是很长,在使用之前也仅仅是粗浅的了解过这个软件。从今年的8月份开始,由于一个项目使用Eclipse3.1,跨地域的开发,为了适应不同的开发人员处于不同的地理位置,因此我们使用SVN作为团队开发的管理工具。开始使用时,仅仅是边学边用,遇到不懂的地方再去查找资料。今天由于有点时间,先把合并过程遇到的冲突问题详细了解一下。 可以使用svn status
2009-11-15 15:24:00
494
转载 熟悉Tortoise SVN 客户端 基本用法
熟悉Tortoise SVN 客户端 基本用法1. export 和check out export 下载源代码http://tortoisesvn.net/downloads 用法: 1、新建一个空的文件夹,右键点击它,可以看到TortoiseSVN菜单以及上面的SVN Checkout。 2、不用管这个Checkout,我们选择TortoiseSVN菜单
2009-08-03 23:19:00
784
转载 一个大小写引起的SVN无法Commit的问题
在使用SVN的过程中,遇到一个奇怪的问题,就是同样的帐号在不同的机器上,都是可以更新,但是有的机器可以提交,有的机器不行。终于今天发现了原因。原因是客户端机器用的仓库的目录的大小写和服务器的大小写不一样造成的。改成一样后就可以了。我猜这个是SVN目前的一个BUG。因为,如果大小写区分,那应当不可以更新。如果不区分大小写,就应当可以提交。现在一样一半,想来是一个小BUG,不过解决的办法很
2009-08-02 23:11:00
408
转载 SVN服务端的配置
1.安装服务端 Ewqr[i5J0安装subversion,我选择的是svn-1.4.1-setup.exe进行安装,安装到 我用Subversion ELZm%/(KQfD:/Subversion 。 zW%b2]X!fk02.创建SVN存储库(repository) 我用SubversionJ2m7U
2009-08-02 22:42:00
656
原创 FileDialog文件过滤
char szFilters[] = "DBU Files (*.dbu)|*.dbu||"; CFileDialog dlg(TRUE, "dbu", "*.dbu", OFN_FILEMUSTEXIST, szFilters, this); if (dlg.DoModal() == IDOK) { m_strScriptPath
2009-07-22 14:45:00
385
原创 SVN中的trunk branches tags
trunk:表示开发时版本存放的目录,即在开发阶段的代码都提交到该目录上。branches:表示发布的版本存放的目录,即项目上线时发布的稳定版本存放在该目录中。tags:表示标签存放的目录。在这需要说明下分三个目录的原因,如果项目分为一期、二期、三期等,那么一期上线时的稳定版本就应该在一期完成时将代码copy到branches上,这样二期开发的代码就对一期的代码没有影响,如
2009-07-16 11:57:00
1988
原创 SVN服务器安装与配置
1.安装SVN服务器,直接运行这个.EXE文件即可,无须设置,一路默认下去,完成SVN服务器安装。2.新建一个版本控制库,运行CMD程序,输入svnadmin create D:/SVNRoot(具体位置可以自己定义)。这里SVNRoot就是代码仓库。3.安装SVN服务:sc create svnservice binpath= "C:/JAVA_DEV/Tools/svn-win32
2009-07-16 11:38:00
415
原创 通过匿名管道在进程间双向通信
由于匿名管道只能是单向的,因此要建立双向通信必须建立2个管道。父程序代码:int main(){ //定义四个句炳保留两个管道的信息 HANDLE hReadPipe1, hWritePipe1, hReadPipe2, hWritePipe2; SECURITY_ATTRIBUTES sat; STARTUPINFO startupinfo;
2009-06-21 09:19:00
847
原创 获取鼠标位置的三维坐标
CDC* m_pDC = GetDC(); ::wglMakeCurrent(m_pDC->m_hDC, gl3d.m_hRC); glDisable(GL_TEXTURE_2D); glDisable(GL_FOG); glDisable(GL_LIGHTING); GLint viewport[4]; glGetIntegerv(GL_VIEWPORT,
2009-06-07 11:21:00
954
转载 OpenGL Selection Using Unique Color IDs
IntroductionThere are a number of ways object selection can be performed. Using OpenGL you can use the special Selection Buffer, which allows you to select objects in the scene having unique IDs pr
2009-06-07 11:17:00
568
1
原创 导出和加载DLL
DLL源代码:extern "C" int WINAPI EXPORT LALALA(int m, int n, string s){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); AfxMessageBox(s.c_str()); return m+n;} LIBRARY "ADll"EXPORTS ; 此处可以是显式导
2009-04-16 17:28:00
269
原创 模板方法 AND 构建器
模板方法将各个子类的不同部分抽象到超类中,形成抽象方法,同时定义各个子类的公共部分,并实现之。子类只实现各自不同的部分。公共部分是对外接口,供外部调用,同时公共部分调用超类定义的抽象方法。使用时直接创建超类对象,并调用相应的公共操作,同时也就调用了相应子类的具体方法。 #include using namespace std;class TestPaper{public:
2009-03-04 15:02:00
241
原创 设计模式对比之 简单工厂方法模式vs策略模式
策略模式有一个context类,strategy类作为context类的一个成员,context类是strategy类的使用环境,相当与strategy的封装。 在工厂方法中,用于直接操作各个类,类比到策略模式中,相当与用户直接操作strategy类;而在策略模式中,用户不直接操作strategy类,而是通过context类。 策略模式相当于将简单工厂模式中创建具体类的switch
2009-02-23 18:27:00
367
原创 工厂方法 AND 抽象工厂
工厂方法模式的核心是一个抽象工厂类,而简单工厂模式把核心放到了一个具体类上. 简单工厂是工厂方法模式的特例。 工厂方法模式和抽象工厂模式的最主要的区别在于对工厂的抽象程度上。 抽象工厂模式中一般是抽象出工厂接口,表示他就是一个工厂,而不管它是制造什么产品的工厂,他的抽象程度较高。而工厂方法模式的抽象工厂一般是针对于产品进行抽象,表示它是一个生产某类产品的工厂。 简单工厂是不支持继承的,如果
2009-02-20 11:56:00
228
原创 设计模式
1. 抽象工厂:一个抽向工厂类,定义了创建产品的抽象方法,若干具体工厂类,每个具体工厂实现创建某种产品的方法。A b s t r a c t F a c t o r y通常为每一种它可以生产的产品定义一个操作。产品的种类被编码在操作型构中。增加一种新的产品要求改变A b s t r a c t F a c t o r y的接口以及所有与它相关的类。一个更灵活但不太安全的设计是给创建对象的操作增加一
2008-12-10 10:34:00
235
原创 Functional is better than function
,greater::operator()是一个内联函数,所以编译器在实例化sort时内联展开它。结果,sort没有包含一次函数调用,而且编译器可以对这个没有调用操作的代码进行其他情况下不经常进行的优化 。当我们试图把一个函数作为参数时,编译器默默地把函数转化为一个指向那个函数的指针,大部分编译器不会试图去内联通过函数指针调用的函数
2008-10-13 10:36:00
219
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人