. RedUIView, GreenUIView MyUIViewiOS6, MyUIViewiOS7.
objective-c , , , , . , , , . , , , @protocol, .
MyUIView, MyUIViewiOS6 MyUIViewiOS7 , , Red Green :
@interface MyRedUIView : MyUIView<RedProtocol> @end
, :
if ([class conformsToProtocol:@protocol(RedProtocol)]) {
self.color = [UIColor redColor];
}
, , .
. , MyUIView, :
GreenView.h
#import "MyUIView.h"
#import "Green.h"
@interface MyUIView (GreenUIView) <Green>
-(BOOL) isGreen;
@end
@interface GreenView : MyUIView @end
GreenView.m
#import "GreenView.h"
@implementation MyUIView (GreenUIView)
-(BOOL) isGreen{
return [self conformsToProtocol:@protocol(Green)];
}
@end
@implementation GreenView @end
Green.h
@protocol Green <NSObject> @end
AppDelegate.m
#import "GreenView.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
GreenView* view = [[GreenView alloc] init];
NSLog(@"%@", [view isGreen]?@"yes":@"no");
return YES;
}
@end