Objective-C 编程语言(2) 类,对象,消息 --- 类(4)类名称的用法

转载请标明出处:blog.csdn.net/zhangxingping

    类名称的用法

    在代码中类名称的使用只有两种情况:作为一种数据类型和作为一个对象。
    ● 类名称可以被用来作为类型名,标明对象的类型。例如:    
       Rectangle *anObject;
        这里,anObject被静态地声明为是指向一个Rectangle类的对象的指针。编译器期望该对象应该有Rectangle类的实例该有的数据和方法,即那些在Rectangle类中定义以及继承而来的数据结构和实例方法。这种静态类型使得编译器在编译时能更好地进行类型检查,并且能使得代码具有自我注释性,更方便阅读。请参阅“使能静态行为”,获取更多关于这点的信息。
        只有实例才可以使用这种静态类型;类对象则不能。这是因为类对象不是类的成员,而是Class类型的数据类型。
    ● 作为发送消息表达式中的接收者的时候,类名称代表的是类对象。这种使用方法在前面的是个示例程序中都有所演示。类名称只有在作为消息的接收者的时候才代表类对象。在其他情况下,我们必须通过发送class消息类获取对应的类对象。下面的示例程序把Rectangle类作为参数传递给isKindOfClass:消息:
 if ( [anObject isKindOfClass:[Rectangle class]] )
        ...
        只使用Rectangle作为参数,则是错误的。类名称只能作为消息的接收者。
        如果在编译时我们不知道具体的类名称,但是在运行时能知道该类名的字符串形式,那么我们可以使用NSClassFromString来获取其对应的类对象:
    NSString *className;
        ...
    if ( [anObject isKindOfClass:NSClassFromString(className)] )
        ...
        这个函数在传入的字符串不是有效的类名的时候返回nil。
        类名称和函数名称一样是作为全局变量出现在同一个命名空间中的。类名称和全部变量不能有相同的名称。类名称在Objective-C中是唯一具有全局可见性的名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值