<转载>仰望星空
所谓转载,就是从我自己的一个地方转到另一个地方。
和天上人间没有任何关系,只是看到,就拿来当题目了。就当写了个命题作文吧,反正走题正是我擅长的。
阅读这篇文章的剩余部分 »
所谓转载,就是从我自己的一个地方转到另一个地方。
和天上人间没有任何关系,只是看到,就拿来当题目了。就当写了个命题作文吧,反正走题正是我擅长的。
阅读这篇文章的剩余部分 »
最近正在写一些库,并且用上篇文章的方式实现了一个头文件对应多个实现文件的一个类。
但是在测试自己的库的时候,发现了这样一个问题:
我有一个类,叫MyClass,并且头文件MyClass.h中声明了基础的一些方法,并且声明一些Category方法,其中包含方法
- (void)getSomeData;
并且该方法在MyClass+Extension.m中实现(其他基础的方法在MyClass.m中实现)。
但是,在测试过程中使用该库,并调用
[MyClass getSomeData]
程序崩溃了,查看崩溃的原因是:unrecognized selector [MyClass getSomeData]
可是编译的时候一点警告都没有。从Objective-C的语法上来讲,这样子完全是没有错的。那么到底是什么原因导致崩溃的呢?
后来在搜索到苹果的这个网页后,才知道要使用静态库中,同一个头文件对应多个实现文件的静态库时,编译时需要加上链接-ObjC才可以正常执行。
加上ObjC后,编译的时候,编译器会将库中所有涉及到某个类的内容全部加载进来,这样会导致生成体积会变大,不过这是理所当然的,因为链入的代码变多了。
所以,最好在分Category去实现的时候,对应的Category还是要有对应的头文件,将不同的Category拆成不同的头文件,只引用有用的头文件,例如把上篇文章的头文件拆成MyClass.h和MyClass+Extension.h,分别对应MyClass.m和MyClass+Extension.m。这样子使用的时候我只要引用MyClass.h和MyClass+Extension.h就可以了,即可以保持Category的好处,又不用引入ObjC使链接器将我不想用的MyClass+ExtensionAnother之类的也链进来导致编译体积变大了。
Objective-C中,没办法像C/C++一样,一个头文件简单的对应多个文件,链接的时候我们什么都不用管。一般来说Objective-C是一个头文件的对应一个实现文件,他的所有实现都是在@implement和@end之间的。
但是Objective-C有个动态扩展一个已经存在的类的方法,Category。假设已经存在实现好的类 MyClass,你只要实现自己的Category,例如:
再实现对应的
这样 你就给已经存在的MyClass类增加了一个叫aaa的方法。
我们可以利用这个特性来实现单头文件对应多实现文件。
阅读这篇文章的剩余部分 »
自从在我的macbook pro上装了 ubuntu9.10之后(10.4LTS都出来了,汗),一直没有无线网卡驱动,导致平时都没法用,因为我屋里只有无线网络。
上次折腾了好久,都没搞定,能搜到其他的网络,但是就是搜不到我屋里的网络,试了好多次,也重启了很多次,就是不行。搞到3点,但是都放弃了。
今天要睡觉前,满想说,说不定进去就好了呢。结果重启,切换系统,哈哈,居然可以了!oh yes!用了一年多mac,好久没用ubunut,都有点陌生了,呵呵。
这下可以先把剩下的驱动搞定再说,不知道又会搞到几点了,呵呵。先去弄触摸板的驱动好了。
好久没有写过博客了,不知道写什么,开了页面又再关掉。
没想到最后决定的会是贴个转帖。先声明,最近工作没有什么压力,待遇也还好,但就是感觉很无力。
==============(转帖开始)=======================
告别程序员生涯,一点感慨,与诸君共勉(转CSDN)
再过几天,我就正式告别程序员生涯了,这也是我最后一次以职业程序员身份在CSDN发表文章。
小弟谈谈入行几年来的感受,做一个人生阶段的自我总结,同时希望能给后来者带来点参考意见,能在这段路上走的更好。
本人2002年下半年正式入行,至今2007年4月一直从事软件开发工作。
上大学选择这个专业是阴差阳错,但接触之后对计算机产生了强烈的兴趣,对写软件有一种强烈的冲动。
软件成型后,那种成就感和自豪感能给我难以名状的满足。
那时,喜欢看侯捷的书,对核心技术和核心技术人员由衷的崇拜,对技术的追求和水平的提高有一种莫名的狂热,当时我想只要能从事软件开发的工作,起初的薪金 待遇可以不计,等我技术方面成熟后,自己就有更高更好的选择了,程序员-系统分析-项目经理-自己的软件公司,这是当时我一个朦胧的程序人生规划。
现在想来,不禁一番唏嘘。
阅读这篇文章的剩余部分 »