黑马程序员---IOS protocol
来源:互联网 发布:被淘宝举报盗图怎么办 编辑:程序博客网 时间:2024/06/10 09:28
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一.概述
协议(protocol):规定的一组方法方法的声明,当你必需完成一个或几个特定的任务时候就该用到协议了。
委托(delegate):就是把这几个特定的任务交付给这个对象完成。
有一个老板(BOSS)需要聘请清洁员(Cleaner),这个清洁员需要完成扫地(cleanFloor),倒垃圾 (takeOutTrash)等任务(Task)。
清洁员这个就属于委托对象了,而清洁员需要完成的这些个扫地,倒垃圾等任务就属于协议。
二.协议和委托的声明
1. 使用可视化界面创建一个协议:
2. 编写协议的内容:
3. 实现委托
3.1 委托可以实现多个协议
3.2 委托实现协议要做的事情
4. 管理者使用委托
5. main函数
源代码如下:
//// Task.h// protocol//// Created by AndyJerry on 14-12-19.// Copyright (c) 2014年 AndyJerry. All rights reserved.//#import <Foundation/Foundation.h>//协议的声明@protocol Task <NSObject>//必须要实现的方法用@required声明@required-(void) cleanFloor;-(void) takeOutTrash;//可以不实现的方法用optional声明@optional-(void) cook;@end#import <Foundation/Foundation.h>@protocol Task;//@protocol Task2;@interface Cleaner : NSObject<Task>//实现多个协议//@interface Cleaner : NSObject<Task, Task2>@end//也可以在一个类中定义协议,不过建议写在一个单独的头文件中@protocol Task2 <NSObject>-(void)rest;@end//委托#import "Cleaner.h"#import "Task.h"@implementation Cleaner//实现必须完成的任务 实现协议-(void)cleanFloor { NSLog(@"Boss, I'm cleaning");}-(void)takeOutTrash { NSLog(@"Boss, I'm taking out trash");}@end#import <Foundation/Foundation.h>@class Cleaner;@protocol Task;@interface Boss : NSObject//@property中声明的属性也可用做一个遵守协议的限制@property (retain, nonatomic) Cleaner<Task> *cleaner;@end#import "Boss.h"#import "Cleaner.h"#import "Task.h"@implementation Boss@end#import <Foundation/Foundation.h>#import "Task.h"#import "Cleaner.h"#import "Boss.h"int main(int argc, const char * argv[]){ @autoreleasepool { Cleaner *cleaner = [[[Cleaner alloc] init] autorelease]; Boss *boss = [[Boss alloc] init]; boss.cleaner = cleaner; [cleaner release]; [boss.cleaner cleanFloor]; [boss.cleaner takeOutTrash]; [boss release]; } return 0;}
0 0
- 黑马程序员---IOS protocol
- 黑马程序员-oc-protocol
- 黑马程序员-OC语言协议Protocol
- 黑马程序员--ios基础--oc-protocol
- 黑马程序员--11OC Block && protocol
- 黑马程序员--ios protocol语法简介
- 黑马程序员-iOS应用设计规范大全
- 黑马程序员---Protocol协议
- 黑马程序员 block、protocol
- 黑马程序员---OC--protocol
- 黑马程序员——IOS基础——Protocol协议
- 黑马程序员-iOS学习日记(九)Block&Protocol
- 黑马程序员- IOS学习笔记-OC ARC、BLOCK、protocol
- 黑马程序员IOS基础---OC学习之Protocol
- IOS学习之协议protocol - 杂七杂八
- 黑马程序员_OC_ARC,block,protocol
- 12.黑马程序员-protocol(协议)
- 黑马程序员——protocol
- bootstrap学习笔记初探(1)
- mysql视图总结
- 网易私有云IaaS平台研发实践
- 八大排序算法学习
- Objective C Design Pattern ( 一 )
- 黑马程序员---IOS protocol
- [leetcode] Fraction to Recurring Decimal
- C# 接口学习用法
- 最简单的贪心法:硬币问题
- CCActionEase 想说爱你也不难 I
- 获取未读信息
- iOS FMDB的使用
- 你必须知道的28个HTML5特征、窍门和技术
- leetcode -- Search for a Range