- 博客(44)
- 资源 (2)
- 收藏
- 关注
原创 UIActionSheet关闭动画过程中调用delegate = nil 导致的内存泄露
UIActionSheet在动画期间(ActionSheet button点击之后,到didDismissWithButtonIndex调用完成之前)设置delegate为空会导致delegate无法释放。先来看个例子:例子中创建一个UIActionSheet,并在按钮点击之后0.1秒(关闭动画结束前)设置delegate = nil。#import "LIViewController
2014-06-11 23:41:49 2187
原创 深入浅出C++11(7)-- 类型推导
在标准 C++(和 C ),使用参数必须明确的指出其类型。然而,随着模版类型的出现以及模板元编程的技巧,某物的类型,特别是函数定义明确的返回类型,就不容易表示。在这样的情况下,将中间结果存储于参数是件困难的事,可能会需要知道特定的元编程程序库的内部情况。C++11 提供两种方法缓解上述所遇到的困难。首先,有被明确初始化的参数可以使用 auto 关键字。这会依据该初始化子(ini
2013-10-06 15:33:04 2446
原创 深入浅出C++11(6)-- 外部模板
为什么需要外部模板先来看一个例子://fun.htemplate void fun(T t){}//use1.cppvoid test1(){ fun(1);}//use2.cppvoid test2(){ fun(1);}fun.h定义了模版函数fun, 在use1.cpp和use2.cpp中都使用了该模版函数,在编译这两个cpp文件时需要分别实例化,
2013-10-05 19:40:47 5787
原创 深入浅出C++11(4)-- 泛化的常数表示式
C++ 规格要求使用常数表示式, 数组大小的定义上,以及枚举值(enumerator values)都要求必须是常数表示式:int getCount(){ return 5;}const int count1 = 5;const int count3 = getCount();int count2 = 5;int a1[5];int a2[coun
2013-10-05 10:23:20 2296
原创 深入浅出C++11(3) -- 右值引用和move语义
右值引用什么是lvalue, 什么是rvalue?lvalue: 具有存储性质的对象,即lvalue对象,是指要实际占用内存空间、有内存地址的那些实体对象,例如:变量(variables)、函数、函数指针等。rvalue:相比较于lvalue就是所谓的没有存储性质的对象, 也就是临时对象。也可以这样理解: lvalue: 通过它能够找到内存中存放的变量(lo
2013-10-04 20:49:03 8899 3
原创 深入浅出C++11(2) -- C++核心语言的扩充
C++核心语言的扩充C++委员会的主要焦点是在语言核心的发展上。核心语言将被大幅改善的领域包括多线程(或称为“多线程”)支持、泛型编程、统一的初始化,以及性能表现的加强。在此分成4个区块来讨论核心语言的特色以及变更: 运行期表现强化、建构期表现强化、可用性强化,还有新的功能。某些特色可能会同时属于多个区块,但在此仅于其最具代表性的区块描述该特色。核心语言的运行期表现强化
2013-10-04 15:27:27 1423
原创 深入浅出C++11(1)
C++标准C++真正正式公布的标准就三个:C++98: 第一个正式C++标准;C++03: 在C++98上面进行了小幅度的修订;C++11: 一次全面的大进化(之前称C++11为C++0x,以为会在08~09年公布,没想到拖到了11年)。注1: 其实C++在第一个标准C++98之前就已经广为使用了。只不过那时候还没有一个官方的统一标准,后来才开始起草标准草案,
2013-10-04 15:12:47 1589
转载 Android GWES之Android窗口治理(转)
Android Window WindowManager WindowManagerServer View
2010-12-09 14:58:00 626
转载 MeeGo架构层和API视图
MeeGo的系统架构可以以下3种视角来了解: 层级视角 它展示了不同层与用户体验的垂直分离 域视角 它显示了在技术和功能相似性基础上的各架构域中的多组子系统 API视角 它展示了各个功能区域中MeeGo API的分组 抽象层使MeeGo可以独立于硬件 层级视图 层级视图包括3个层:用户体验(UX)、应用API和核心操作系统层 用户体验层包含了用户体验的纵向。 它提供了多平台用户体验参考。MeeGo
2010-12-05 13:38:00 1067
转载 MeeGo体系结构
博主注释:下面那张结构图是理想图,但是现在情况是很多功能还不具有,中间层的内容大部分没有实现,MEEGO API层其实就是QT API,其他功能还在开发中,总之MEEGO的现实开发情况是不理想中的那样。 MeeGo平台精心设计所有必要模块,是为了给设备使用者最好的用户体验。正如以下MeeGo架构综述图所表现的,MeeGo系统主要分成三个部分: MeeGo操作系统底层 包含linux核心服务组件以及支持不同硬件架构的硬件自适应层。 MeeGo操作系统中间件层 提供硬件和独立的API使用模型用
2010-12-05 13:28:00 1062
转载 Android display架构分析
<br />http://hi.baidu.com/leowenj/blog/item/429c2dd6ac1480c851da4b95.html<br />http://hi.baidu.com/leowenj/home<br />
2010-12-03 10:54:00 603
原创 socket相关的函数I/O模型
[本文内容主要来源: UNIX Network Programming Volume.1 by W. Richard Stevens] 首先我们来看几个socket相关的函数I/O模型1. Blocking I/O 模型这个模型是最普通和常见的, 以recvfrom为例. 这个函数在返回之前有两个过程 1). 等待数据到来.2). 从内核空间copy数据到用户空间.用图表示就是这样
2009-04-16 14:12:00 1847
原创 STUN, STUNT, XSTUNT
STUN (From: http://zh.wikipedia.org/w/index.php?title=STUN&variant=zh-cn) STUN(Simple Traversal of User Datagram Protocol through Network Address Translators (NATs),NAT的UDP简单穿越)是一种网络协议,它允许位于NAT(
2009-04-14 09:19:00 4156 5
原创 winpcap发送数据包模拟TCP连接和断开的7次握手
上次我用winpcap成功发送一个UDP数据包到服务器。 相比较TCP要复杂的多, tcp不但要完成开始连接的三次握手, 还要处理数据包的序列号。 下面是tcp七次握手示意图: 下面我就来模拟一个TCP客服端,发送一个连接到服务器, 服务器之后断开。这样就是7次握手, 不含其他数据包。 首先我们做一个tcp服务器, 最好是一个公网的, 这样连接就
2009-04-11 11:20:00 9093 4
原创 用winpcap发送UDP数据包
今天尝试用winpcap提供的pcap_sendpacket函数成功发送一个udp数据包到目的地址。 下面就来回顾一下过程。 首先用pcap_findalldevs得到网络接口,比如在我的机器上得到这样的结果:1: /Device/NPF_GenericDialupAdapter2: /Device/NPF_{06864041-9387-44DC-AF44-37779B0F2E9E}
2009-04-08 20:35:00 14394 6
原创 Boost库中的Traits(is_float, is_class)
对以判断是不是某个基本类型(整数, 浮点, bool)可以参考下面代码:3. is_floattemplatestruct is_float : bool_type{};#define IS_FLOAT(T) template : bool_type{};/ template : bool_type{};/ template : bool_type{};/ te
2009-03-21 21:55:00 2019
原创 Boost库中的Traits(is_array, is_const)
Boost中的Traits十分完善,可分为几大类:1. Primary Type Categorisation(初级型别分类) 2. Secondary Type Categorisation(次级型别分类) 3. Type Properties(型别属性) 4. Relationships Between Types(型别间关系) 5. Transformations Bet
2009-03-21 20:48:00 1531
原创 让CPU画正弦曲线
#include #include #include using namespace std;//得到循环0xFFFFFFFF次用的秒数unsigned int test(){ unsigned int c = 0xFFFFFFFF; time_t t1, t2; time(&t1); for(unsigned int i = 0; i <
2009-03-16 15:11:00 726
原创 cdecl
#include#define R const char#define Y template#define X operator R*(){#define O return n;}};#define N(t) template::n=#t;#define W(M,S) Y struct C{X static char n[512];strcpy(n,S);strcat(n
2009-03-11 13:54:00 522
原创 一个简单模拟内存分配和释放的实现
#include #include #define PAGEINTSIZE 1024 #define PAGESIZE 4096 struct Page { char mm[PAGESIZE]; bool Initial(unsigned int size) {
2009-03-02 16:03:00 1326 1
原创 原始套接口(RAW SOCKET)
原始套接口(RAW SOCKET) 原始套接口提供三种TCP和UDP套接口不提供的功能:1). 可以读写ICMPv4, IGMPv4和ICMPv6分组. 例如Ping和Traceroute程序就是利用ICMP分组2). 可以读写特殊的IPv4数据报, 内核不处理这些数据报IPv4协议字段3). 使用IP_HDRINCL选项可以构造自己IPv4头部. 可以用这个特性来构造自己的T
2009-02-20 15:05:00 4205
原创 vi文字处理
vi共分为3种模式:1). 一般模式2). 编辑模式3). 命令行命令模式 命令行的命令 一般模式:移动光标的方法h或向左方向键(←)光标向左移动一个字符j或向下方向键(↓)光标向下移动一个字符k或向上方向键(↑)光标向上移动一个字符
2009-02-18 12:19:00 806
原创 linux设备
在Linux系统中,存在一个抽象化的设备目录,名为/dev,如图所示。该目录下存有指向系统中硬件的特殊文件。这些指向硬件设备的文件,极大地简化了程序员对硬件的操作。Linux系统将设备分成了3种类型:1). 字符设备: 字符设备就是能够像字节流一样访问的设备,字符终端和串口就属于字符设备。2). 设备: 与字符设备不同,在读写操作时,块设备每次只能传输一个或多个完整的块。3).
2009-02-18 09:52:00 1144
转载 GCC编译器介绍
GCC编译器介绍GCC是GNU项目的编译器组件之一,也是GNU最具有代表性的作品。在GCC设计之初仅仅作为一个C语言的编译器,可是经过十多年的发展,GCC已经不仅仅能支持C语言;它现在还支持Ada语言、C++语言、Java语言、Objective C语言,Pascal语言、COBOL语言,以及支持函数式编程和逻辑编程的Mercury语言,等等。而GCC也不再单是GNU C Compiler的意
2009-02-17 17:46:00 9934
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人