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(@"你已经打卡继续坚持
// 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(@"你已经打卡继续坚持
相关文章推荐
- iOS 开发笔记--SSO
- iOS国际化和genstrings所有子文件夹本地化字符串
- iOS点滴小细节
- IOS数据存储
- iOS多线程编程工具
- iOS中的@class
- ios-动画
- 连载六 奖学金文章更新 张文军 北京IOS第38期学员
- 【笔记】iOS开发基础笔记<—>
- iOS 开发学习40 自动布局约束
- IOS block使用中碰到的一个小坑
- iOS开发中学到的技巧
- IOS7 导航栏适配二
- ios 学习之 NSPredicate 模糊、精确、查询
- iOS下FMDB的多线程操作(二)
- iOS下FMDB的多线程操作(二)
- iOS - 贝塞尔曲线,折线,曲线,波浪线
- iOS开发~CocoaPods使用详细说明
- iOS下FMDB的多线程操作(一)
- iOS下FMDB的多线程操作(一)