Author

豆子

Qt 内存管理机制

by 豆子

强类型语言在创建对象时总会显式或隐式地包含对象的类型信息。也就是说,强类型语言在分配对象内存空间时,总会关联上对象的类型。相比之下,弱类型语言则不会这样做。在分配了内存空间之后,有两种方法释放空间:手工释放,或者是使用垃圾收集器。C++ 要求开发者手工释放内存空间。这样做的好处是,开发者对内存有完全的控制能力,知道什么时候释放比较合适。Java 则使用垃圾收集器。它在后台会有一个线程根据一定的算法 ...

4 评论 1.8K 次阅读

layoutChrome() layoutChrome()是 Halo 专用的函数。在 Flex 4 组件里面并没有与之对应的函数或者阶段。这里仅仅为了能够比较完整的介绍整个 Flex 组件的生命周期,才会简单讲解一下这个函数。如果你只是用 Flex 4,就完全可以跳过这部分。

2 评论 1.8K 次阅读

默认构造函数:指定初始化函数 在 Objective-C 中,默认构造函数没有实在的意义,因为所有对象都是动态分配内存,也就是说,构造函数都是确定的。但是,一个常用的构造函数确实可以精简代码。事实上,一个正确的初始化过程通常类似于: 剪贴复制代码是一个不良习惯。好的做法是,将共同代码放到一个独立的函数中,通常称为“指定初始化函数”。通常这种指定初始化函数会包含很多参数,因为 Objective-C ...

0 个评论 3.1K 次阅读

createChildren() createChildren()在构造函数之后,同时要在组件通过addChild()函数添加到父组件(或者在 MXML 文件中隐式地被添加)之后被调用。注意,如果你继承的是Group,那么应该是addElement()而不是addChild()。这是由于Group不支持addChild()函数。 createChildren()函数用于实例化你的组件中所有可视化组 ...

0 个评论 1.6K 次阅读

self = [super init...] 在上一篇提到的代码中,最不可思议的可能就是这句self = [super init...]。回想一下,self是每个方法的一个隐藏参数,指向当前对象。因此,这是一个局部变量。那么,为什么我们要改变一个局部变量的值呢?事实上,self必须要改变。我们将在下面解释为什么要这样做。

7 评论 2K 次阅读

自定义 Flex 组件,很重要的是要理解 Flex 4 组件的生命周期。不管你的组件是简单还是复杂,有一样是永远不变的,那就是:你的组件应该正确地实例化,正确地创建子组件,并且能够正确地显示出来;当它所展现的数据发生改变时,应该能够正确地重绘自身;或许,当它发生改变时,它应该要通知另外的组件。这一系列动作都是 Flex 框架的一系列方法定义好的。而执行这一系列方法的过程,也就是这个组件的生命周期。

0 个评论 1.6K 次阅读

类的实例化位导致两个问题:构造函数、析构函数和赋值运算符如何实现,以及如何分配内存。 在 C++ 中,变量默认是“自动的”:除非被声明为static,否则变量仅在自己的定义块中有意义。动态分配的内存可以一直使用,直到调用了free()或者delete。C++ 中,所有对象都遵循这一规则。 然而在 Objective-C 中,所有对象都是动态分配的。其实这也是符合逻辑的,因为 C++ 更加 stat ...

0 个评论 1.6K 次阅读

简单继承 Objective-C 也有继承的概念,但是不能多重继承。不过,它也有别的途径实现类似多重继承的机制,这个我们后面会讲到。 C++ Objective-C 在 C++ 中,一个类可以继承自一个或多个类,使用public、protected以及private修饰符。子类的函数如果要调用父类的版本,需要使用::运算符,例如Bar::,Wiz::等。 在 Objective-C 中,一个类只能 ...

0 个评论 1.6K 次阅读

消息和消息传输 给nil发送消息 默认情况下,给nil发送消息也是合法的,只不过这个消息被忽略掉了。这种机制可以避免很多检查指针是否为空的情况。不过,有些编译器,比如 GCC,也允许你通过编译参数的设置关闭这一特性。 将消息代理给未知对象 代理 delegation 是 Cocoa 框架中 UI 元素的一个很常见的部分。代理可以将消息转发给一个未知的对象。通过代理,一个对象可以将一些任务交给另外的 ...

0 个评论 1.6K 次阅读

关于我

devbean

devbean

豆子,生于山东,定居南京。毕业于山东大学软件工程专业。软件工程师,主要关注于 Qt、Angular 等界面技术。

主题 Salodad 由 PenciDesign 提供 | 静态文件存储由又拍云存储提供 | 苏ICP备13027999号-2