文档章节

OC高效率52之通过委托与数据源协议进行对象间通信

阿元
 阿元
发布于 2016/02/29 10:39
字数 163
阅读 18
收藏 0
点赞 1
评论 0
#import <Foundation/Foundation.h>
// 对象间通信:
// 在信息源模式中,信息又数据源流向类
// 普通的委托模式中,信息则从类流向受委托者
@class EOCNetworkFetcher;

@protocol EOCNetworkFetcherDelegate <NSObject>

@required
-(void)networkFetcher:(EOCNetworkFetcher *)fetcher didReceiveData:(NSData *)data;

@optional
-(void)networkFetcher:(EOCNetworkFetcher *)fetcher didFailWithError:(NSError *)error;
@end



@interface EOCNetworkFetcher : NSObject

@property (nonatomic , weak) id<EOCNetworkFetcherDelegate> delegate;//利用属相来存放委托对象
@end

#import "EOCNetworkFetcher.h"

@implementation EOCNetworkFetcher
-(void)didSomeSthing{

    if ([_delegate respondsToSelector:@selector(networkFetcher:didReceiveData:)]){
        [_delegate networkFetcher:nil didReceiveData:nil];
    }
}
@end
#import <Foundation/Foundation.h>
#import "EOCNetworkFetcher.h"
@interface EOCDataModel : NSObject<EOCNetworkFetcherDelegate>

@end

#import "EOCDataModel.h"

@implementation EOCDataModel
-(void)networkFetcher:(EOCNetworkFetcher *)fetcher didReceiveData:(NSData *)data
{
//do some things
}
-(void)networkFetcher:(EOCNetworkFetcher *)fetcher didFailWithError:(NSError *)error
{

}
@end


© 著作权归作者所有

共有 人打赏支持
阿元
粉丝 5
博文 153
码字总数 95996
作品 0
浦东
程序员
编写高质量iOS与OS X代码的52个有效方法(上篇)

第一章 熟悉Objective-C 1. 了解Objective-C语言的起源 Objective-C(以下简称OC)是C语言的超集,相比C语言多了面向对象的特性。OC使用动态绑定的消息结构,换句话说,只有在运行时才会检查...

凝望向北 ⋅ 2017/04/06 ⋅ 0

iOS-消息转发机制

前言 其他编程语言所说的函数调用,在oc中被称作为发送消息;消息转发的作用,开发者可以在找不到的方法的情况下,可以通过动态添加方法或者是消息转发,确定本次发送消息是否成功,通过这样...

麦兜卖鱼丸 ⋅ 2016/03/27 ⋅ 0

Protocol and Delegate协议和代理

1.什么是协议? OC协议仿照Java的接口。协议和接口,都是不同类的对象之间一种通信的机制。 2.协议的基础语法 单纯的语言描述协议的语法,很难让人理解,主要因为在OC中协议是类对象的通信机...

飞奔的土豆 ⋅ 2012/12/14 ⋅ 0

iOS编写质量代码

这是一篇读书笔记,快速记录各种高效率编程的技巧和方法。这些方法是为了提升编码质量和效率,高质量代码利于后期的维护和更新,毕竟不能一份代码到永远。 由于是记录形式,当然不能把整篇内...

nerozhao ⋅ 2015/09/08 ⋅ 0

IOS面试题(五)

、Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议。 2、#import和#include的区别是什么?#import<> 跟 #import""有什么区别? #import能避免头...

SoulJa ⋅ 2015/07/05 ⋅ 0

iOS OC 异常处理

一 简述 自动引用计数 ARC 默认情况下不是"异常安全的",具体来说,如果抛出异常,那么本应在作用域末尾释放的对象现在却不能自动释放,如果想生成"异常安全"的代码,可以通过设置编译器的标志...

卧龙小 ⋅ 2015/07/09 ⋅ 0

组件接口(API)设计指南[3]-委托(delegate)和数据源协议(data-source protocols)

*返回目录阅读其他章节: http://blog.csdn.net/cuibo1123/article/details/39894477 委托(delegate)和数据源协议(data-source protocols) 委托协议是一个非常好的设计,它能让你用简单灵活的...

cuibo1123 ⋅ 2014/10/09 ⋅ 0

计算机网络编程基本概念

网络: 计算机网络由一组通过通信信道相互连接的机器组成。我们把这些机器称为主机(hosts)和路由器(routers)。 路由: 路由器的作用是将信息从一个通信信道传递或转发(forward)到另一个...

令飞 ⋅ 2015/04/15 ⋅ 0

OC协议代理的回调功能

main.m //普通ios应用:下载数据-》解析数据 -》 显示数据 //协议代理回调作用:通过协议方法的返回值,将数据从代理传给委托 //场景:显示类想要显示从网上的数据 //分析:显示类不能去下载数据...

鹿微微鹿 ⋅ 2016/03/28 ⋅ 0

图解http读书笔记

发送请求获取服务器资源称为客户端。 web建立在http协议上通信。 微软与网景各自对html做扩展,导致写html必须考虑兼容性。 要通信必须有相同的方法,相同的规则,将这种规则称之为协议。 层...

云胡_ ⋅ 2017/12/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

开启远程SSH

SSH默认没有开启账号密码登陆,需要再配置表中修改: vim /etc/ssh/sshd_configPermitRootLogin yes #是否可以使用root账户登陆PasswordAuthentication yes #是都开启密码登陆ser...

Kefy ⋅ 5分钟前 ⋅ 0

Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群

有段时间没更新博客了,趁着最近有点时间,来完成之前关于集群部署方面的知识。今天主要讲一讲Zookeeper+Hadoop+Hbase分布式集群的搭建,在我前几篇的集群搭建的博客中已经分别讲过了Zookeep...

海岸线的曙光 ⋅ 13分钟前 ⋅ 0

js保留两位小数方法总结

本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一、我们首先从经典的“四舍五入”算法讲起 1、四舍五入的情况...

孟飞阳 ⋅ 31分钟前 ⋅ 0

python log

python log 处理方式 log_demo.py: 日志代码。 #! /usr/bin/env python# -*- coding: utf-8 -*-# __author__ = "Q1mi""""logging配置"""import osimport logging.config# 定义三种......

inidcard ⋅ 46分钟前 ⋅ 0

mysql 中的信息数据库以及 shell 查询 sql

Information_schema 是 MySQL 自带的信息数据库,里面的“表”保存着服务器当前的实时信息。它提供了访问数据库元数据的方式。 什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,...

blackfoxya ⋅ 47分钟前 ⋅ 0

maven配置阿里云镜像享受飞的感觉

1.在maven目录下的conf/setting.xml中找到mirrors添加如下内容,对所有使用改maven打包的项目生效。 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.al......

kalnkaya ⋅ 47分钟前 ⋅ 0

centos7下创建新用户并授权

1、创建新用户 创建一个用户名为:test adduser test 创建初始密码: passwd test 2、授予root权限 个人用户的权限只可以在/home/test下有完整权限,其他目录要看别人授权。而经常需要roo...

xixingzhe ⋅ 51分钟前 ⋅ 0

求助:TiledMap如何旋转对象呢?

比如我要旋转一个梯子的角度,单纯在TiledMap旋转角度好像没有效果。那是要用代码来控制角度,还是说只能通过导入相对应的斜的图片才可以呢?

花谢自相惜 ⋅ 53分钟前 ⋅ 0

Micronaut 之HelloWorld!

小试一下Micronaut,按照官方文档跑了一下helloworld 第一步克隆,按照官方文档是: git clone git@github.com:micronaut-projects/micronaut-core.git 结果怎么是这样?? 换个方法吧 git ...

桂哥 ⋅ 59分钟前 ⋅ 0

pom文件

Aeroever ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部