摘要: 1.什么是NSRunLoop?我们会经常看到这样的代码:-(IBAction)start:(id)sender{pageStillLoading=YES;[NSThreaddetachNewThreadSelector:@selector(loadPageInBackground:)toTarget:self withObject:nil];[progress setHidden:NO];while(pageStillLoading){[NSRunLoopcurrentRunLoop]runMode:NSDefaultRunLoopMode beforeDate:[NSDatedistantF 阅读全文
posted @ 2013-09-06 13:51 荔枝林 阅读(193) 评论(0) 推荐(0) 编辑
摘要: NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间DatesNSDate类提供了创建date,比较date以及计算两个date之间间隔的功能。Date对象是不可改变的。如果你要创建date对象并表示当前日期,你可以alloc一个NSDate对象并调用init初始化:view plainNSDate *now = [[NSDate alloc] init];或者使用NSDate的date类方法来创建一个日期对象。如果你需要与当前日期不同的日期,你可以使用NSDate的initWithTimeInterval...或dateWithTimeInterval...方法,你也可 阅读全文
posted @ 2013-09-05 16:54 荔枝林 阅读(1909) 评论(0) 推荐(0) 编辑
摘要: 无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication.什么是单例呢?Wikipedia是如此定义的:在软件工程中,单例是一种用于实现单例的数学概念,即将类的实例化限制成仅一个对象的设计模式。或者我的理解是:单例是一种类,该类只能实例化一个对象。 尽管这是单例的实际定义,但在Foundation框架中不一定是这样。比如NSFileManger和NSNotificationCenter,分别通过它们的类方法defaultManager和defaultCenter获取。尽管不是严格意义的单例,这些类方法返回一个可以在应用的所 阅读全文
posted @ 2013-09-05 15:35 荔枝林 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 1. 互斥锁创建 有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下: pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER; 在LinuxThreads实现中,pthread_mutex_t是一个结构,而PTHREAD_MUTEX_INITIALIZER则是一个结构常量。 动态方式是采用pthread_mutex_init()函数来初始化互斥锁,API定义如下:int pthread_mutex_init(pthread_mutex_t *mutex, co. 阅读全文
posted @ 2013-09-05 13:48 荔枝林 阅读(4540) 评论(0) 推荐(0) 编辑
摘要: IOS提供的数据持久化方式有:SQLite、CoreData、属性列表、NSUserDefault、对象归档。这里来简单介绍下对象归档:对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化),使用的时候读取该文件的保存路径读取文件的内容(也称为接档,反序列化),(对象归档的文件是保密的,在磁盘上无法查看文件中的内容,而属性列表是明文的,可以查看)。对象归档有两种方式:1:对foundation中对象进行归档2:自定义对象归档1、简单对象归档使用两个类:NSKeyedArichiver、NSKeyedUnarchiverNSString *homeDirectory = NSHom 阅读全文
posted @ 2013-08-23 14:35 荔枝林 阅读(2971) 评论(0) 推荐(0) 编辑
摘要: RegisterWindowMessage函数定义了一个新的窗口消息,该消息在系统范围内是唯一的。通常调用SendMessage或者PostMessage函数时可以使用该函数返回的消息值。函数原型: UINT RegisterWindowMessage( lpString);参数说明: lpString指向一个以NULL结束的字符串,指定待注册的消息。返回值: 若成功注册了消息,返回值是一个消息标识符,该标识符范围在0XC000到0XFFFF之间。否则,返回值为0。PS: RegisterWindowMessage函数通常用于为两个合作应用程序之间的通信注册消息。 若两个不同的应用程... 阅读全文
posted @ 2012-12-05 14:19 荔枝林 阅读(737) 评论(0) 推荐(0) 编辑
摘要: OSVERSIONINFOEX structure收藏:Contains operating system version information. The information includes major and minor version numbers, a build number, a platform identifier, and information about product suites and the latest Service Pack installed on the system. This structure is used with theGetVers 阅读全文
posted @ 2012-11-13 17:26 荔枝林 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 your source files --> [autoscan*] --> [configure.scan] --> configure.ac 2.aclocal (automake):根据已经安装的宏,用户定义宏和acinclude.m4文件中的宏将configure.ac文件所需要的宏集中定义到文件 aclocal.m4中。 aclocal是一个perl 脚本程序,它的定义是:“ac 阅读全文
posted @ 2012-11-09 09:38 荔枝林 阅读(3342) 评论(0) 推荐(1) 编辑
摘要: 工欲善其事,必先利其器;要想用VC开发出高效率程序,必须对VC编译器有充分的了解。如果我们已经习惯编译器给我的默认设置,那么现在起开始尝试改变吧!本篇文章(或者后续文章)讲解VC编译器设置选项并没有先后顺序,只是作者在具体开发过程碰见了不同的编译设置,进行深入了解,做此文章记录。也希望读到这篇文章的您有所收获;本文章主要参考MSDN,编译器为VC7.1,作者只是添加一些通俗例子,或者翻译部分英文内容,从而达到对编译器设置的通俗理解。1:/GR(启用运行时类型信息)说明:此选项 (/GR) 添加代码以便在运行时检查对象类型。当指定此选项时,编译器定义 _CPPRTTI 预处理器宏。默认情况下,此 阅读全文
posted @ 2012-11-09 09:36 荔枝林 阅读(3286) 评论(0) 推荐(0) 编辑
摘要: Visual Studio 6.01998年,微软公司发布了Visual Studio 6.0。所有开发语言的开发环境版本均升至6.0。这也是Visual Basic最后一次发布,从下一个版本(7.0)开始,Microsoft Basic进化成了一种新的面向对象的语言:Microsoft Basic.NET。Visual Studio .NET 20022002年,随着.NET口号的提出与Windows XP/Office XP的发布,微软发布了Visual Studio .NET(内部版本号为7.0)。在这个版本的Visual Studio中,微软剥离了Visual FoxPro作为一个单独 阅读全文
posted @ 2012-11-08 10:43 荔枝林 阅读(424) 评论(0) 推荐(0) 编辑