痛并快乐着_百度空间
 
文章列表
 
2011-11-30 00:16

iphone开发过程中,如果遇到加载大数据或者涉及到网络通信情况时,就需要在后台线程来完成这些事情。

除了NSThread之外,iphone还提供了一套GCD机制帮助开发者来实现多线程开发。

同NSThread相比,GCD的运行效率更高,开发更简单。

GCD的基础是dispatch queue和block。

1. block可以简单理解为一个任务。block在程序中的表现形式类似 :  

NSString * URL = @"......";

^{ 

   

 
2011-11-07 21:20

1. lipo 合并x86平台和ARM下的opencv library.

合并后的opencv库文件如下:opencv.zip

2. 设置include目录. 在build setting -> search paths中的Header Search Paths中添加。

3. 设置library目录. 在build setting ->search paths中的Library Search Paths中添加。

4. 添加Accelerate.framework.

 
2011-08-15 22:59

最近在做一个图像处理的app应用,应用中有很多图像资源。

为了方便,一开始读取图像资源的时候都是直接使用了[UIImage imageNamed:@""]方法,这个方法非常方便,一句话就可以从bundle中读取图片。

初步测试,功能一切正常。后来发现多次操作之后,应用经常发生内存警告从而导致自动退出的问题。定位之后发现是由于[UIImage imageNamed: @""]分配的图像都没有释放引起的。而之前从官方的reference中得到的信息应该是[UIImage imageNamed:@""]分配的图像系统会放到cache里面。

 
2011-03-10 10:20

历法的分类:

阳历:以天文年作为日历的主要周期,例如:中国公历。

阴历:以天文月作为日历的主要周期,例如:伊斯兰日历。

阴阳历:以天文月和年作为日历的主要周期,例如:中国农历。

 

月全黑规则 - 月全黑的日子是农历月的第一天。农历月周期由此而定。

24 节气规则 - 24 节气把天文年按太阳角度分成 24 等份,15 度一节气。 这个规则确定了农历和天文年的关系。

冬至规则 - 冬至必须落在农历冬月。如果落不上,腊月之前就要添上一个 月,成为闰年。

闰月规

 
2011-03-07 22:24

Ubuntu在升级内核的过程中,为了安全起见不会清理低版本的内核,所以系统里面如果长期不清理会堆积较多的内核版本。

下面这个小技巧可以帮助清理内核:

dpkg -l | grep linux

查看已经安装的Linux 内核。

apt-get remove $内核完整名称

内核的完整名称可以从第一个命令中拿到。

apt-get remove 会自动清理menu.lst文件中多余的内核,重启之后就会发现Grub的引导界面清爽很多。

 
2010-12-06 23:04

一直以为我对编译和连接已经非常熟悉了。今天对一个知识点有一个很2的理解。废话少说,直接上代码.

 

/*header.h*/

#include <stdio.h>

const int a = 0;

void  foo();

 

/* test1.cpp */

‍#include "header.h"

void foo()

{

printf("%d\n", &a);

}

 

/* main.cpp */

#include "header.h"

int main()

{

foo();

printf("%d\n", &a);

ret

 
2010-11-16 21:18

在日常的开发中,IDE在构建的过程中会自动进行链接,需要程序员干预的部分极少。然而有时候会遇到一些棘手的链接问题,如果对于程序链接过程有些了解,会更快地解决问题。
链接过程就是将若干个目标文件(*.o)和静态库(*.a)"合起来"生成一个可执行文件的过程。而一个静态库文件就是若干个目标文件的简单打包。所以链接过程的输入就是一堆的目标文件,输出是可执行文件。

我们以下面这段程序为例:

/**    a.c **/
int weak_ref;
int strong_def = 1;

int test

 
2010-11-15 00:46

好久没有更新,太懒了。。

刚刚整了一个可以在PE文件中添加Section的东东。

接口如下:

1. BOOL Open(const CString & strFileName)

2. BOOL ParsePE()

3. BOOL CPEFile::AddSection(LPCSTR strSectionName, LPVOID pvContent,
     DWORD pvVirtualAddr, DWORD dwVirtualSize,
     DWORD dwRawDataSize, DWORD dwRawDataOffset,
     DWORD dwSectionFlag)

4. Save(const CString & strFileNa

 
2010-07-06 22:06
和同事合租了个房子,但是发现路由器不支持Qos. 无奈,去下了个网络限速软件。 虽说iptables功能很强大,但是稍有不慎就有可能要调试一会儿。 直接下了个wondershaper,非常好用。 Usage: 限速: wondershaper $interface $downlimit $uplimit 清除限速: wondershaper clear $interface
 
2010-07-04 17:25
gets 与 fgets同样都是读取一行文本。
fgets返回的文本会包含最后的回车,而gets则不会。
相对于gets,fgets更加安全和强大。
fgets可以从任意文件中读取,而gets只能从标准输入中读取。 fgets的参数中包含了读取缓冲区的大小,可以有效的防止溢出攻击。
二者同样都是标准IO的接口,因此会做一些缓存,不宜与read和write混用。
 
     
 
 
文章分类
 
 
 
     

帮助中心  |  空间客服  |  投诉中心  |  空间协议
©2012 Baidu