#import "FirstClass.m"
#import "SecondClass.m"
#import <stdio.h>
int main() {
FirstClass *fClassObj = [[FirstClass alloc] init];
SecondClass *sClassObj = [[SecondClass alloc] init];
/* some methods to work with dynamic types */
// -(BOOL) isKindOfClass: classObj ----------- true
if ( [fClassObj isKindOfClass: [FirstClass class]] == YES ) {
printf( "fClassObj is kind of FirstClass.\n" );
}
// -(BOOL) isKindOfClass: classObj ----------- false
if ( [fClassObj isKindOfClass: [SecondClass class]] == YES ) {
printf( "fClassObj is kind of SecondClass.\n" );
}
else
printf( "fClassObj is not kind of SecondClass.\n" );
// -(BOOL) isMemberOfClass: classObj ----------- true
if ( [fClassObj isMemberOfClass: [FirstClass class]] == YES ) {
printf( "fClassObj is member of FirstClass.\n" );
}
// -(BOOL) isMemberOfClass: classObj ----------- false
if ( [sClassObj isMemberOfClass: [FirstClass class]] == YES ) {
printf( "sClassObj is member of FirstClass.\n" );
}
else
printf( "sClassObj is not member of FirstClass.\n" );
// -(BOOL) respondsToSelector: selector ----- true
if ( [fClassObj respondsToSelector: @selector(fShow)] == YES ) {
printf( "fClassObj responds to fShow method\n" );
}
// -(BOOL) respondsToSelector: selector ----- false
if ( [sClassObj respondsToSelector: @selector(fShow)] == YES ) {
printf( "sClassObj responds to fShow method\n" );
}
else
printf( "sClassObj does'nt respond to fShow method\n" );
// release memory allocated for the objects
[fClassObj release];
[sClassObj release];
return 0;
}
|