Key Value Observing(键值观察),是Objective-C观察者模式的实现。当被观察对象的某个属性发生变化时,观察对象就会收到通知。 实现原理: 1)在运行期,为被观察对象的类动态创建一个子类,名为NSKVONotifying_xxx 2)在子类NSKVONotifying_xxx ...
分类:
其他好文 时间:
2018-07-06 01:27:45
阅读次数:
175
我们在嵌入式的开发中经常会见到 GCC 和 gcc,那么它们两有何不同呢?GCC(GNU Compile Collection) 是指 GNU 编译器集合,包含众多语言的编译器,如 C、C++、Java、D、Objective-C 等;而 gcc 则是特指 GCC 中的 C 语言编译器。那么 GCC 与嵌入式的关系是怎样的呢?多数嵌入式操作系统都是基于 GCC 进行源码编译,如 Linux、VxWorks 以及 Android 等。在实际的开发中,内核相关的开发用的是 gcc,而应用开发用的是 gcc/g++/gdc 等。下来我们来看看一个嵌入式开发中的高端大气上档次的词语:交叉编译。那么为什么会有交叉编译呢?在以往的嵌入式设备往往都是资源受限的,不可能直接在嵌入式上直接对处理器进行编程。那么此时的解决方案便是在开发主机(PC)上对源码进行编译,最终生成目标主机(嵌入式设备)的可执行程序。gcc 是如何进行交叉编译的呢?1、配置目标主机的编译工具链(如arm-linux);2、配置工具链的具体版本:根据具体的目标代码选择相应的工具链版本,正确使用关于硬件体系的特殊编译选项。
分类:
编程语言 时间:
2018-07-01 11:56:17
阅读次数:
217
Questions about UIUC and USC I am admitted to University of Illinois at Urbana-Champaign (UIUC) Professional MCS and University of Southern California ...
分类:
其他好文 时间:
2018-06-29 11:12:43
阅读次数:
178
记住: 尽量以pass-by-reference-to-const替换pass-by-value。前者通常比较高效,并可避免切割问题(slicing problem)。 以上规则并不适用于内置类型,以及STL的迭代器和函数对象。对它们而言,pass-by-value往往比较适当。 ...
分类:
编程语言 时间:
2018-06-24 00:34:30
阅读次数:
144
记住: 在定义一个新type之前,确定已经考虑过本条款覆盖的主题 要设计高效的class,需要回答以下的问题:1. 对象如何去创建和销毁?这是构造函数和析构函数的问题,当然如果想要有堆分配方式,还需要重载new、new[]、delete和delete[]运算符; 2. 对象初始化与对象的赋值应该有什 ...
分类:
编程语言 时间:
2018-06-23 21:04:57
阅读次数:
130
记住: 好的接口容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。 促进正确使用的办法包括接口的一致性,以及与内置类型的行为兼容。 阻止误用的办法包括建立新类型,限制类型上的操作,束缚对象值,以及消除客户的资源管理责任。 tr1::shared_ptr支持定制型删除器。这可被用来 ...
分类:
编程语言 时间:
2018-06-23 19:05:03
阅读次数:
144
记住: 以独立语句将newd对象存储于智能指针内。如果不这样做,一旦异常被抛出,有可能导致难以察觉的资源泄漏。 ...
分类:
编程语言 时间:
2018-06-23 14:26:55
阅读次数:
133
记住: 如果你在new表达式中使用[ ],必须在相应的delete表达式中也是用[ ]。如果你在new时不使用[ ],一定不要在delete时使用[ ]。 最好不要用数组形式做typedef,基本都可以使用vector之类的 ...
分类:
编程语言 时间:
2018-06-23 13:17:09
阅读次数:
128
其实之前在stackoverflow就看过一篇讲的比较详细的, https://stackoverflow.com/questions/14877415/difference-between-typeof-typeof-and-typeof-objective-c 个人理解两者只是编译方式不同,在g ...
分类:
其他好文 时间:
2018-06-22 13:40:24
阅读次数:
267
ArcGIS Runtime作为新一代的轻量GIS应用开发产品,它提供多种API,可以使用Android,iOS,Java,Mac OS X(Objective-C/Swift)、.NET,Qt(C++/QML)等语言及其相应的开发环境快速的构建地图应用,并将应用程序部署在Windows 、Mac ...
分类:
移动开发 时间:
2018-06-21 23:38:07
阅读次数:
635