类目的基本概念:如果有封装好的一个类,随着程序功能的增加,需要在类中增加一个方法,那我们就不必在那个类中做修改或者再定义一个子类,只需要在用到那个方法时添加一个该类的类目即可.1.在类目定义的方法中,会成为原始类的一部分,与其他方法的调用没有区别2.通过给父类定义类目方法,其子类也会继承这些方法.如...
分类:
其他好文 时间:
2014-07-07 10:51:18
阅读次数:
193
1、随机数的使用1)、arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: intvalue=arc4random()%x; 获取1到x之间的整数的代码如下: intvalue=(arc4random()%x)+1; ...
分类:
其他好文 时间:
2014-07-06 23:56:11
阅读次数:
353
Objective-C一门动态语言,动态两个字主要就体现在我们调用方法的时候,运行时回动态的查找方法,然后调用相应的函数地址。运行时是整个Objective-c程序的基石,有了它我们的程序才能正常运行起来。NSObject是Cocoa中绝大部分类的基类,它主要是提供了序列话,拷贝对象,以及支持运行时...
分类:
移动开发 时间:
2014-07-06 18:17:03
阅读次数:
254
方法方法是与某些特定类型相关联的函数。类、结构体、枚举都可以定义实例方法;实例方法为给定类型的实例封装了具体的任务与功能。类、结构体、枚举也可以定义类型方法;类型方法与类型本身相关联。类型方法与 Objective-C 中的类方法(class methods)相似。结构体和枚举能够定义方法是 Swi...
分类:
其他好文 时间:
2014-07-06 17:59:29
阅读次数:
260
在构造函数中不要调用virtual函数,调用了也不会有预期的效果。举个例子class Transaction{ public: Transaction() { log(); } virtual void log() =0;}class BusinessTran...
分类:
编程语言 时间:
2014-07-05 20:43:00
阅读次数:
209
(一)首先有下面的继承体系:
class B {
public:
void mf();
...
};
class D : public B {...};
D x;
以下行为:
B* pB = &x;
pB->mf();
异于以下行为:
D* pD = &x;
pD->mf();
上面两种行为产生的结果不一定相同。看下面这种...
分类:
编程语言 时间:
2014-07-04 09:04:30
阅读次数:
253
从这篇章节起,Swift编程语言指南大部分的重要内容在于概念,代码并不是太多。理解Swift的面向对象理念,语法以及类结构,构造析构过程对于很好的应用Swift语言将会有比较大的帮助。
属性
存储属性
存储属性通常是那些可以通过直接赋值,或者直接访问成员能够获得的属性类型。
它有些要注意的地方:
若一个结构体被声明为常量,则子属性无法被修改了。在Objective-C中,我们总是...
分类:
其他好文 时间:
2014-07-04 08:38:44
阅读次数:
349
由于重新定义继承而来的non-virtual函数是不正确的(见上一个条款),所以这个条款就将问题局限于:绝不重新定义继承一个带有缺省参数值的virtual函数。
(一)
virtual函数是动态绑定的,而缺省参数却是静态绑定。
对象的所谓静态类型,是它在程序中被声明时所采用的类型。
你可能会在“调用一个定义于derived
class 内的virtual函数”的同时,却使用了ba...
分类:
编程语言 时间:
2014-07-04 08:23:12
阅读次数:
412
[0] Outline -- [1] 版本和平台 -- [2] 与Runtime System交互 -- [3] 方法的动态决议 -- [4]消息转发 -- [5]类型编码 -- [6]属性声明[1] 版本和平台Runtime System对于Objective-C来说就好比是它的操作系统,或者说是...
分类:
其他好文 时间:
2014-07-03 22:34:45
阅读次数:
327
ClassObjective-C是支持反射的,先来了解一下其如何表达一个类。在Objective-C的Runtime中有个类型是Class(只在Runtime环境中使用),用来表示Objective-C中的类,其定义为:typedef struct objc_class *Class;可以看出,其实...
分类:
其他好文 时间:
2014-07-03 21:38:17
阅读次数:
277