您的位置:首页 > 移动开发 > IOS开发

iOS学习011延展协议

2015-06-25 21:14 357 查看
20150625延展协议

// main.m
// OC-延展协议
//
// Created by jzq_mac on 15/6/25.
// Copyright (c) 2015年 jzq_mac. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Animal.h"
#import "Student.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 延展(Extention)概念和用法 类的延展就是在类中添加私有方法,变量,延展中声明的方法在类本身的@interface类名()和它对应的@end之间实现
//协议(Protocol)
// 协议就是共同遵守的一个条约,可以被任何类实现的方法,协议本身不是类,是一个定义了其他类可实现的接口。(协议只声明,不实现)
// 没有实现的类 又叫非正式协议 因为一般情况下类都是继承NSobject,所以NSobject的类目中声明的方法,这个类可以实现也可以不实现
// 非正式协议以()表示,正式协议以<>来表示
// 子类要使用协议时,只需要在要使用的地方遵守协议就行。协议可以继承
// 在哪一个类里面导入了协议就在哪个类里面实现这个协议方法

Animal *tianShi = [[Animal alloc]init];
//respondsToSelector:判断是否能够响应一个方法 Selector(选择的方法)是方法选择器 用来选择方法
BOOL r = [ tianShi respondsToSelector:@selector(hongDeng)];
if (r!=NO)
{
[tianShi hongDeng];
NSLog(@"等---");

}else{
NSLog(@"压死啦");

}

BOOL b = [tianShi respondsToSelector:@selector(lvDeng)];

if (b!=NO) {
NSLog(@"你会安全度过滴---");
}else{
NSLog(@"人家催你了");
}

BOOL c = [tianShi respondsToSelector:@selector(huangDeng)];
if (c!=NO) {

NSLog(@"好样的----");
}else{
NSLog(@"要养成好习惯");
}
NSLog(@"----------这是练习题------------");
#pragma ------练习--------
Student *jzq = [[Student alloc]init];
BOOL aa = [jzq respondsToSelector:@selector(daKa)];
if (aa!= NO) {
[jzq daKa];
NSLog(@"你已经打卡继续坚持
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: