自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 UIWebView 加载本地的html文件

- (void)viewDidLoad{    [superviewDidLoad];// Do any additional setup after loading the view, typically from a nib.   NSString *appPath = NSHomeDirectory(); //获取app路径   NSBundle *b

2014-05-14 09:50:28 367

转载 说的很不错的关于程序员文章。

不要再让自己精疲力竭,这样不会让你成为更好的程序员。做你爱做的事,爱上更多的兴趣。你将会变的更优秀。

2014-05-13 16:40:14 419

原创 iOS写文件日志实现

#import #define HHCLog(formatter,...) [[HCLog shareInstance]write:formatter,##__VA_ARGS__]@interface HCLog : NSObject+(HCLog*)shareInstance;-(BOOL)write:(NSString *)format,...;

2014-05-09 10:31:01 464

原创 iOS观察者模式的实现

2014-03-07 13:43:07 323

原创 IOS 单例或者单件实现

///单件实现////.h文件@interface singleton:NSObject{    static singleton* _singleton;}-+(singleton*)GetInstance; //类方法@end///.m文件@implemetation singletonstaitc singleton::_singleton=n

2014-02-19 15:48:30 311

原创 memento备忘录 (C++)实现

// memento.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include //memento模式的C++实现,改模式实现状态回滚,类似于文本编辑器的undo,或者数据的回滚功能。//有相关应用的都可以通过memento模式来实现using namespace std;class iMememto;cla

2014-02-18 10:06:11 301

原创 关键字volatile有什么含义?并给出三个不同例子?

一个定义为volatile的变量是说这个变量可能会被 意想不到的改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:并发设备的硬件寄存器(如:状态寄存器)一个中断服务子程序中会访问到的非自动变量(non-automatic variables)

2014-01-27 11:03:15 627

原创 堆和栈的区别?

管理方式:对于栈来讲,是由编译器自动管理,无需我们手动控制;对于堆来说,释放工作由程序员控制,容易memory leak。申请大小:栈:在windows下,栈是向低地址扩展的数据结构,是一块连续的内存区域。这句话的意思是栈顶地址和栈的最大容量是系统预先规定好的,在windows下,栈的大小是2M(也有的说是1M,总之是在编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将

2014-01-27 10:13:00 296

原创 object-c,线程和进程的区别?

进程和线程都是有操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应的并发性。进程和线程的主要区别在于他们是不同的操作系统资源管理方式,而线程只是一个进程中不同的执行路径。线程有自己的堆栈和局部变量,但线程之间没有独立的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要

2014-01-27 09:45:22 331

原创 #import 和#include的区别,@class代表什么?

@class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文件中还需要使用#import而#improt比起#include的好处就是不会引起重复包含

2014-01-27 09:38:38 368

原创 objective-c有私有的方法吗?私有变量呢?

objective-c类里面的方法只有两种,静态方法和实例方法。这似乎就是不完整的面向对象了,按照oo的原则就是一个对象只暴露有用的东西。如果没有私有方法的话,对于一些小范围的代码重用就不那么顺手了在类里面声明一个私有方法@interface Controller:NSObjec{NSString* something;}+(void)thisIsAStaticMethod;-

2014-01-27 09:32:50 453

原创 Objective c有多继承吗?没有的话用什么代替?

cocoa中所有的类都是nsobject的子类多继承在这里是用protocal委托代理来实现的你不用去考虑繁琐的多继承,虚基类的概念ood的多态特性在obj-c中通过委托实现。

2014-01-27 09:24:18 364

原创 类别的作用?

有时我们需要在一个已经定义好的类中增加一些方法,而不想去重新写该类。比如当工程已经很大,代码量比较多,或者类中已经抱住很多方法,已经有其他代码调用了该类创建对象并使用该类的方法时,可以使用类别对该类的扩充新的方法。注意:类别只能扩充方法,而不能扩充成员变量。委托(举例)委托代理(degegate),顾名思义,把某个对象要做的事情委托给别的对象去做。那么别的对象就是这个对象的

2014-01-26 17:02:51 488

原创 简述索引计数

retain值 = 索引计数(reference counting)NSArray对象会retain值加一,任何数组中的对象。当NSArray被卸载(delloc)的时候,所有数组中的对象会被执行一次释放(retain值减一)。不仅仅是NSArray,任何收集类(collection classes)都执行类似操作。例如NSDictionary,甚至UINavigationContro

2014-01-26 16:29:24 444

原创 内存管理autorelease,retain,copy,assign的set方法和含义?

1.你初始化(alloc/init)的对象,你需要释放(release)它。例如:NSMutableArray aArray=[[NSArray alloc]init];后,需要[aArray release];2,你的retain或者copy的,你需要释放它。例如:[aArray retain];后需要[aArray release];3,被传递(assign)的

2014-01-26 15:50:18 406

原创 id,nil代表什么?

idid和void*并非完全一样。在上面的代码中,id是指向struct objc_object的一个指针,这个意思基本上说,id是一个指向任务一个继承了object(或者NSObject)类的对象。需要注意的是id是一个指针,所有你在使用id的时候不需要加星号。比如id foo=nil则定义了一个指针,这个指针指向另外一个指针,被指向的这个指针指向NSObject的一个子类。

2014-01-26 15:42:14 1243

原创 kvc和kvo区别,分别在什么情况下使用?

KVC(key-value-coding)KVO(key-value-Observing)理解KVC 和KVO(键-值-编码与键-值-监看)当通过KVC调用对象时,比如:[self valueForKey:@"somekey"]时,程序会自动试图通过几种不同的方法解析这个调用。首先查找对象是否带有somekey这个方法,如果没有找到,会继续查找对象是否是否嗲有somekey和个

2014-01-26 15:35:54 482

原创 怎么理解MVC,在Cocoa中MVC是怎么实现?

MVC设计模式考虑三种对象:模型对象,视图对象,控制器对象。模型对象特别的需要知识和专业技能,它们负责保有应用程序的数据和定义操作数据的逻辑。视图对象知道如何显示应用程序的模型数据,而且可能允许用户对其进行编辑。控制器对象是应用程序的视图对象和模型对象之间的协调者。

2014-01-26 15:22:07 477

原创 viewController的didreceivememorywarning是在什么时候调用?默认的操作时什么?

当程序接到内存告警时viewController将会收到这个消息:didReceiveMemoryWarning从ios3.0开始,不需要重载这个函数,把释放内存的代码放到viewDidUnload中去。这个函数的默认实现是:检查cotroller是否可以安全释放它的view(这里加粗的view指的是controller的view属性),比如view本身没有superview并且可以很

2014-01-26 15:11:10 707

原创 OpenWrt网络配置(1)

网络配置文件放在/etc/config/network里面,被分为各个接口配置。接口配置不是以太网、wifi配置就是一个包含多个接口的“桥”。它看起来就是这样的: config interface     "lan"      option ifname    "eth0"       option proto     "static"      option ipaddr

2013-09-27 14:48:22 1365

原创 CMake交叉编译的设置 (二)

2.搜索和查找扩展软件大多数不简单的项目都会依赖扩展的库或者工具。CMake 为了达到这个目标,提供 FIND_PROGRAM(), FIND_LIBRARY(), FIND_FILE(), FIND_PATH() 和FIND_PACKAGE()这些函数。它们在公共地方搜索文件并返回结果。. FIND_PACKAGE() 有一点不同,它实际上是不搜索的,而是执行FindXXX.cmake模

2013-09-12 10:46:19 617

原创 CMake交叉编译的设置

根据官方资料整理,翻译,官方地址:http://www.cmake.org/Wiki/CMake_Cross_Compiling修改CMakelist.txt1.设置系统和工具链CMake无法预知你交叉编译的目标系统,所以设置一些参数。CMAKE_SYSTEM_NAME     必须设置CMAKE_SYSTEM_VERSION     可选CMAKE_SYSTEM_

2013-09-11 20:36:38 1724

原创 for循环的思考

只要是写程序的,没有不会for循环的,但熟悉不表示深刻理解。例1for(int i=0;i{   int k=i;   int j=i++;}例2for(int i=0;i{   int k=i;   int j=i++;}思考1:把for里面的i++和++i换了,执行结果是否一样?答案是一样。思考2:一次循环后,i是1还

2013-08-15 09:49:21 317

原创 对大批量数据处理的一些总结

宽带数据分析系统,一个整个浙江省用户上网的话单解析,每天要处理压缩后文件达到了3G.要实现的目标:解析数据进行归类,并且导入到相关到表中(oracle数据库中)。 尝试方法1:把所有文件导入到数据库,通过表关联建索引的方法,一次处理下来时间=15小时。尝试方法2:用fopen打开文件,逐行匹配,进行关联解析,=20小时。尝试方法3:把所有文件导入到内存,对1000多万字典表

2013-01-31 20:30:16 656 1

原创 linux 下OCI连接oralce出现问题与解决办法

简述原理:当连接时,通过tnsnames.ora去查找SID,判断于代码中传入SID是否有匹配的。出现问题1,在tnsnames.ora设置完后,发现还是出现找不到服务名的错误,为什么?答:环境变量问题,代码查找路径是可以判断是 /network/admin/tnsnames.ora下面,但前部分路径是靠环境变量来指定。linux默认的环境变量可以通过env来查看。当所有环境变量+

2012-02-14 09:22:28 596 1

原创 B+ tree 和 hash数据库的研究

B+ tree是计算机科学tree算法里面的一种,特点是能通过key(关键字)能高效的读取,插入和删除数据。它是动态的,多索引还有最大和最小界限。数据库存储基本上使用的是这个算法,如 IBM DB2,[1] Informix,[1] Microsoft SQL Serve

2011-08-17 11:12:36 410

原创 linux 安装

<br />rpm -i --force --nodeps 可以忽略所有依赖关系和文件问题,什么包 都能安装上,但这种强制安装的软件包不能保证完全发挥功能

2010-06-29 16:06:00 204

原创 linux下启动文本模式

<br />是图形界面,耗资源,性能略低,但在一些需要使用他的地方还是很有用的,比如satellite server 必须要用到,但在大多数情况下,使用5都没有必要,速度慢!<br />3是文本界面,省资源,性能高,在大多数情况下使用效果很好!执行速度快!而且,对命令的响应快!

2010-06-28 14:21:00 327

原创 linux 下多线程下调试

<br />要点是先运行程序,再attach线程号进行调试。<br />1。先运行你的主程序<br />2。使用ps查看你程序的线程号,或者在线程程序里打印出来<br />3。运行gdb,运行“attach 线程号”<br />4。info stack看运行到哪里了,设线程文件中的断点<br />5。跟踪调试<br />6。“detach 线程号”取消调试该线程

2010-06-28 09:33:00 284

原创 环境变量添写

如:C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/nmake.exe要想CMD下:>nmake 直接运行。分3步1.在用户环境变量中path中添加;C:/Program Files/Microsoft Visual Studio 9.0/VC/bin加最后一般要加分号2.再添加如nmake变量名,C:/Program Fil

2010-05-31 09:01:00 336

原创 从刘谦身上领会到了些东西

2002年的时候我就看过刘谦的街头魔术秀了,直到刘谦登上CCTV凭借一般的魔术功力+较强的表演能力迅速走红,我的体会是,觉得当自己的技术水平已经没有突破的时候,一定要去发掘身上其他的优点长处,而不是一根茎的死钻技术走进死胡同。 技术*市场需求=成功;是最近李彦宏上《对话》节目时说的,套在这里也合适的,用的是乘法而不是加法,任何一个等于0,结果就等于0。

2010-03-10 09:52:00 374

原创 成为一个CTO需要具备什么条件?

 1、参与制定公司发展战略、年度经营计划、预算方案、研究决策,组织研究行业最新产品的技术发展方向,主持制定公司技术发展路线、技术发展战略规划,规划公司产品。2、领导分管部门制度并组织实施年度工作计划,完成年度任务目标。3、管理公司的整体核心技术,组织制定和实施重大技术决策和技术方案;规划各项业务的技术构架及其相关规范、流程;规划公司产品。4、全面主持公司研发与技术管

2010-03-10 09:29:00 531

原创 glibc 与 gcc 的概念。

glibc:glibc 是gnu发布的libc库,也即c运行库。  glibc是linux系统中最底层的api(应用程序开发接口),  几乎其它任何的运行库都会依赖于glibc。  glibc除了封装linux操作系统所提供的系统服务外,  它本身也提供了许多其它一些必要功能服务的实现,主要的如下:  (1)string,字符串处理  (2)signal,信号处理 

2010-03-10 09:00:00 1270

原创 在linux 下查看文件GCC,glibc 版本

输入:gcc -v得到 gcc version 2.96 ...... 输入:rpm   -aq|grep   glibc  //-aq =all query输出:glibc-2.2.5-34glibc...

2010-03-10 08:52:00 447

原创 How to use distinct in database

For example:      There are have tabel_1 in the database :       C1    C2      1       2      1       2      1       3  Execute sql cmd:               Select distinct C1 from table

2009-05-28 13:38:00 250

转载 C++的static关键字 详解

 C++的static关键字 详解 一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1 #include iostream.h>void fn();static int n; //定义静态全局变量void main()...{n=20

2007-08-09 15:06:00 439

原创 [c/c++]关于volatile关键字的说明以及测试

 [c/c++]关于volatile关键字的说明以及测试 volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint;当要求使用volatile 声明的变

2007-01-18 21:10:00 693

原创 属性页基础.

向导是一种用来简化用户操作的程序。在Microsoft 的所有产品中都存在向导,如Office2000 中的Web 页向导就是一个十分典型的向 导(如下图所示),还有常用的VC++向导。一个基本的向导程序应该包含以下几个基本按钮: 取消、上一步、下一步、完成、帮助。 一、标准向导程序在 VC++中,可以使用类CPropertySheet和类CPropertyPage方便地编写一个向导程序。首先我

2006-07-05 14:41:00 1141

系统构架,程序构架,各种设计模式

对想转系统构架的程序员,很有用。基于SOA的服务器构架

2010-03-17

glibc SDK,linux api specif

linux下,用glic开发的API包. 可供linux开发人员查询函数,就像Windows的msdn.

2008-10-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除