导航

2012年6月5日

摘要: 使用Category构建Objective-C静态库Q: 在链接包含 Category的静态库时会收到“Selector not recognized”运行时异常,Why?A: 发生这个异常,主要是由于标准Unix静态库,链接器的实现方式以及Objective-C动态特性导致的。Objective-C不会为每一个Objective-C函数生成链接符号,相反,它会为每一个类生成链接符号。如果你通过category对一个既有的类进行扩展,那么链接器就不知道如何把原有的代码与category的代码实现关联起来,这就导致生成的对象无法响应属于category的消息。要解决这个问题,生成链接该静态库的可 阅读全文

posted @ 2012-06-05 11:57 残影无伤 阅读(515) 评论(0) 推荐(1)

2012年2月19日

摘要: Managing Memory EfficientlyWhen it comes to view controllers and memory management, there are two issues to consider: How do you allocate memory efficiently?When and how do you release memory? Although some aspects of memory allocation are strictly yours to decide, there are a handful of methods in 阅读全文

posted @ 2012-02-19 23:33 残影无伤 阅读(196) 评论(0) 推荐(0)

摘要: 最近在笔试时遇到一个问题:C++中内存泄露比较难以检测,如不严加防范很容易出现严重的问题。请设计一套方案来帮助检测C++程序中的内存泄露问题。1. 如果只检测对象的内存泄露该如何做?2. 如果要检查程序中全部的内存泄露如何做? 自己做了以下实验:#define_CRTDBG_MAP_ALLOC#include<crtdbg.h>#include<stdlib.h>#include<iostream>#include<assert.h>#ifdef_DEBUG#defineDEBUG_CLIENTBLOCKnew(_CLIENT_BLOCK,__F 阅读全文

posted @ 2012-02-19 22:14 残影无伤 阅读(1685) 评论(0) 推荐(1)

2012年2月17日

摘要: 简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。 本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。 简单工厂 简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。 不修改代码的话,是无法扩展的。 工厂方法 工厂方法是针对每一种产品提供一个工厂类。通过不同的工厂实例来创建不同的产品实例。 在同一等级结构中,支持增加任意产品。 抽象工厂 抽象工厂是应对产品族概念的。比如说,每个汽车公司可能要同时生产轿车,货车,客车,那么每一个工... 阅读全文

posted @ 2012-02-17 15:12 残影无伤 阅读(127) 评论(0) 推荐(0)

摘要: 转载http://hi.baidu.com/ailuoli/blog/item/009defd91852b8f339012fcb.html C++程序的复杂性很大一部分在于他的内存管理,没有C#那样的垃圾回收机制,内存管理对初学者来说很困难。经常会出现内存泄露的情况。那么我们写程序如何避免内存泄露呢?首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。本文描述了如何检测内存泄露。最主要的是纯C,C++的程序如何检测内存泄露。现 在有很多专业的检测工具,比如比较有名的BoundsCheck, 但是这类工具也有他的缺点,我认为首先BoundsCheck是.. 阅读全文

posted @ 2012-02-17 00:40 残影无伤 阅读(719) 评论(0) 推荐(0)

2012年2月15日

摘要: 转自http://www.cocoachina.com/newbie/basic/2010/0401/900.html 第一部分:Push原理(以下绝大多数内容参考自、图片来自iPhone OS Reference Library)机制简介Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器。 APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,下文统一使用该缩写。 因 此,整个过程可以分为三个阶段,下面用大家常用的聊天客户端BeejiveIM来说明。(BeejiveIM是一款支持. 阅读全文

posted @ 2012-02-15 23:23 残影无伤 阅读(1944) 评论(0) 推荐(0)