首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

关于对象动态类型的一些有关问题 Object-C 2.0

2012-09-03 
关于对象动态类型的一些问题 Object-C 2.0关于对象动态类型的一些问题 Object-C 2.0To get a class object

关于对象动态类型的一些问题 Object-C 2.0

关于对象动态类型的一些问题 Object-C 2.0


关于对象动态类型的一些有关问题 Object-C 2.0


To get a class object from a class named  Square , you write the following:
[Square class]
If mySquare is an instance of  Square object, you get its class by writing this:
[mySquare class]

如果想从Square类得到一个类的对象(实例)可以用[Square class];

如果mySquare是Square类的一个实例,那么如果想得到它对应的class 可以[mySquare class]


下面是一些示例代码:


#import "Square.h"int main(int argc, char *argv[]){NSAutoleasePool *pool = [[NSAutoleasePool alloc] init];Square *mySquare = [[Square alloc] init];// isMemberOfif([mySquare is MemberOfClass: [Square class]] == YES){NSLog(@"mySquare is a memeber of Square class");}if([mySquare isMemberOfClass: [Rectangle class]] == YES){NSLog(@"mySquare is a member of Rectangle class");}if([mySquare isMemberOfClass: NSObject class]] == YES){NSLog(@"mySquare is a member of NSObject class");}// isKindOfif([mySquare isKindOfClass: [Square class]] == YES){NSLog(@"mySquare is a kind of Square");}if([mySquare isKindOfClass: [Rectangle class]] == YES){NSLog(@"mySquare is a kind of Rectangle");}if([mySquare isKindOfClass: [NSObject class]] == YES){NSLog(@"mySquare is a kind of NSObject");}// respondsTo:if([mySquare respondsToSelector: @selector(setSide:)] == YES){NSLog(@"mySquare responds to setSide: method");}if([mySquare respondsToSelector: @selector(setWidth: andHeight:)] == YES){NSLog(@"mySquare responds to setWidth:andHeight: method");}if([Square respondsToSelector: @selector(alloc)] == YES){NSLog(@"Square class responds to alloc method");}// instancesRespondToif([Rectangle instancesRespondToSelector: @selecotr(setSide:)] == YES){NSLog(@"Instances of Rectangle respond to setSide: method");}if([Square instancesRespondToSelector: @selector(setSide:)] == YES){NSLog(@"Instances of Square respond to setSide: method");}if([Square isSubclassOfClass: [Rectangle class]] == YES){NSLog(@"Square is a subclass of a rectangle");}[mySquare release];[pool drain];return 0;}



输出:


mySquare is a member of Square class
mySquare is a kind of Square
mySquare is a kind of Rectangle
mySquare is a kind of NSObject
mySquare responds to setSide: method
mySquare responds to setWidth:andHeight: method
Square class responds to alloc method
Instances of Square respond to setSide: method
Square is a subclass of a rectangle








热点排行