黑马程序员——OC---protocol

扫码器USB键盘报告描述符数据格式解析 Byte0用于判断Shift是否按下,当按下时Byte0的Bit1会置1,即0x02,若未按下,Bit为0,即0x00。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>未按下Shift。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>按下Shift。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出A。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出a。 阅读详情

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

一 protocol的使用

protocol可以用来声明一大堆方法(不能声明成员变量),只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明。并且只要父类遵守了某个协议,就相当于子类也遵守了这个协议。

1 格式

@protocol 协议名称

// 方法声明列表

@end

如果某个类遵守协议则,

@interface 类名 : 父类 <协议名称>

@end

2 关键字

协议中有2个关键字可以控制方法是否要实现(默认是@required),在大多数情况下,用途在于程序员之间的交流。

@required:这个方法必须要实现,若不实现,编译器会发出警告;@optional:这个方法不一定要实现。

3 协议遵守协议

         一个协议可以遵守其他多个协议,多个协议之间用逗号 , 隔开。一个协议遵守了其他协议,就相当于拥有了其他协议中的方法声明。格式如下

@protocol 协议名称 <协议1, 协议2>

@end

4 基协议

Ø   NSObject是一个基类,最根本最基本的类,任何其他类最终都要继承它。其实还有一个协议,名字也叫NSObject,它是一个基协议,最根本最基本的协议。NSObject协议中声明很多最基本的方法,比如description、retain、release等,建议每个新的协议都要遵守NSObject协议。

5 定义变量时指定协议

// NSObject类型的对象,并且要遵守NSCopying协议

NSObject<NSCopying>*obj;

//任何OC对象,并且要遵守NSCoding协议

id<NSCoding> obj2;

 

二代理设计模式

1 设计原理

         有些麻烦的事情不想自己亲自做,就可以找个人帮忙做,即交给代理对象去做。

2      设计原则

首先得拥有某个代理对象属性;其次要很清楚代理有哪些方法;最后要保证能解耦。

3      实现方案

定义一个protocol,在其中声明一些和代理沟通的方法;拥有一个代理属性id<protocol> delegate;让代理遵守protocol
lammps教程:MS转data文件出错原因分析及解决办法 使用ms建模是lammps建模的一种重要方法,但是ms建模转换为data过程中经常会出现各种各样的错误。 ms模型转data文件流程分两部分,一是ms建模、forcite设置力场并导出car文件,二是msi2lmp将car转为data文件。 任何一个环节出错都会导致无法得到data文件,最容易出错的是forcite力场设置环节。 forcite力场设置出错原因有很多,一个原因是缺乏某类原子的力场参数。 msi2lmp软件只能转换cvff或pcff力场的car文件,因此,如果力场中不包含某类原子的参数,在设置 阅读详情

相关推荐

光模块基础知识【快速入门】02

光模块是用于交换机与设备之间传输的载体,是光纤通信系统中的核心器件。主要作用是发射端将设备的电信号转换成光信号。 光纤通道光模块和以太网光模块 光纤通道光模块 光纤通道(FC, Fiber Channel)是一种高速网络数据传输协议。光纤通道协议可以有序无损地传输原始数据,它主要用于在数据中心、电脑服务器、交换机与存储网络中进行数据传输。 FC光模块遵循FC协议,充当着光纤通道系统之间的接口,也是光纤存储网络设备间的接口。它们主要用于数据中心的光纤通道存储网络链接中。 FC光模块具有小型化和低.

Jin Hanquan的博客 3万+

黑马程序员——OC之protocol

------  Java培训、Android培训、iOS培训、.Net培训期待与您交流! ------ http://www.itheima.com protocol(协议):可以声明一些必须实现的方法和选择实现的方法,一般写到一个.h的头文件中。协议的作用:供其他的类去遵守,如果一个类遵守了一个协议,就应该实现这个协议中定义的必须要实现的方法。协议使用流程:协议的定义、遵守协

hope_is_beautiful的博客 387

RTKLIB模糊度固定实战:三种模式对比与部分模糊度固定代码解析

本文深入解析RTKLIB中模糊度固定的三种核心模式(continuous、instantaneous、fix and hold),对比其性能与适用场景,并详细拆解了部分模糊度固定技术的源码实现。通过实战案例与代码级解析,为GNSS高精度定位开发者提供了在不同数据特性下提升固定成功率的优化思路与配置建议。

efc1234567的博客 473

黑马程序员——OC语法 block和protocol

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、block 1.block简介 block是一种数据类型。 block类型的数据封装了一段代码,可以在任何时候执行。(和函数相似) block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。 block跟函数很像:      1>可以

jerome3的专栏 645

Carla-UE4Editor导入RoadRunner地图文件(保姆级教程)

以Carla官网导入RoadRunner地图的标准文档为参考,里面增添了很多细节和注意事项,遇到问题的小伙伴过来看看吧。

DSK_981029的博客 1万+

IATF16949核心职位全解析

TM / Top MgmtMR / QMRProcess OwnerQMQAQCSQECQEPQEPETEMEIEPM / PJMFMEA ModeratorMSA CoordinatorSPC CoordinatorCM / CCB内审员CP / CPK

weixin_49938552的博客 972

——黑马程序员——OC中正式协议protocol的用法总结

-----------android培训、java培训、java学习型技术博客、期待与您交流!-----------

yhp1095785221的博客 645

硬件工程师必备核心知识点

硬件设计是一项系统化工程活动,涉及元器件选型、电源设计、信号完整性、EMC和PCB工艺等多个环节

硬核科技 338

黑马程序员——OC的Category和Protocol

Category一、基本概念 分类的作用:在不修改原有的类的基础上增加新的方法 一个庞大的类可以分模块开发,便于维护 一个庞大的类可以由多个人来编写,更有利于团队合作 使用类别的目的对现有类进行扩展:对自定义的类甚至是框架中的类进行扩展,从而实现项目特殊需求。 作为子类的替代手段:不需要定义和使用一个子类,可以通过类别直接向已有的类中增加方法。 对类中的方法归类:利用category把一个庞大的类划

timehzy的博客 457

Virtual Hard Disk version 2 (VHDX) 文件格式详解

VHDX 镜像格式详解 0. References windows github 1. Overview Microsoft 虚拟化产品中常用的映像格式是虚拟硬盘版本 2 (VHDX) 映像格式。该规范基于可用文档,并通过分析测试数据进行了增强。 VHDX 镜像格式种类 固定硬盘镜像 动态硬盘镜像 差异硬盘镜像 VHDX 镜像文件由以下元素构成: file (type) identifier 2x image headers 2x region tables log or metadata journ

圣三一 2696

YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合

可扩展的高效物体检测BiFPN(加权双向特征金字塔网络)

Limiiiing的博客 5494

黑马程序员——OC之ARC、Block、Protocol

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-ARC之前我们说了OC中的内存管理,很繁琐而且不易管理。ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切。 ARC 是编译器特性,而不是 iOS 运行时特

qq_26989441的专栏 510

RK3566/RK3568 Android 11添加系统服务

【代码】RK3566/RK3568 Android 11添加系统服务。

qq_23921815的博客 641

黑马程序员——OC—block和protocol协议

黑马程序员——OC—block和protocol协议  一、block:       1. 作用:用来保存一段代码       2. block的标志:^       3. 定义的格式: 返回值 (^ 变量名) (形参列表)  =  ^{.........};       5. block和函数相同点:            1. 都可以保存一段代码

wu417284911的专栏 493

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

黑马程序员-oc-protocol

------- android培训、java培训、期待与您交流! ---------- protocol概念  1,接口:接口是一堆方法的声明没有实现 oc中,接口是由协议的protocol来实现的 这个里面可以声明一些方法,和java不同的是,它可以声明一些必须实现的方法和选择实现 的方法。这个和java是完全不同的。  protocol的格式 @protoc

CQYCCCCC的博客 621

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

黑马程序员 --- OC中的protocol

OC中的protocol       一、Protocol的基本概念 在写java的时候都会有接口interface这个概念,接口就是一堆方法的声明而没有实现,而在OC里面,Interface是一个类的头文件的声明,并不是真正意义上的接口的意思,在OC中,接口是由一个叫做 协议的 protocol来实现的。这个里面可以声明一些方法,和java不同的是,它可以声明一些必须实现的方法和

u013644868的博客 416

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

黑马程序员——OC中的协议:protocol

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

Atelas_Leo的博客 788

黑马程序员—IOS基础之OC—block和protocol

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! —— 第一章 block 一、block的概念和基本的使用 1、block的概念block类型是一个C级别的语法和运行机制。除了包含可执行代码外,与堆区、栈区内存绑定的变量,block是一组状态数据。 Objective-c和c++都源自于c语言,而我们定义

Dnorsunshine的博客 605

黑马程序员-OC-block和protocol

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

追梦人 344

【黑马程序员】-oc中的block和protocol

------- android培训、java培训、期待与您交流! ---------- 一. Block类型 block类型封装了一段代码,可以在任何时候执行,而且此段代码是在程序运行过程中保存起来的。 block的标志为:^ block基本定义形式为:                   返回值类型   (^名字)(参数类型) = ^(形参){                    

zhushilong8023的专栏 384

黑马程序员-OC语言协议Protocol

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.概念 1>协议(Protoco)是一系列方法的列表,其声明的方法可以被任何类实现,一般称为代理模式。 2>在.h文件中@protocol声明存在协议,跟@class一样 2.作用: 1>可以声明很多方法,但是不能声明成员变量。 2>如果某个类遵守了某个协议,则这个

wlwl363的专栏 596

黑马程序员员—OC(block和protocol)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------  一、 ARC     ARC是一种编译器特性:编译时编译器帮助完成代码 ,区分于垃圾回收。     ARC判断准则:没有强指针指向对象时,会释放对象。  1.ARC特点     1> 不允许调用release、retain、retainCount     2>

macau1的专栏 486

黑马程序员--11OC Block && protocol

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.block block作用是封装一段代码,我们也称之为代码块或者代码段,它与函数的区别是,函数在执行main函数之后就不能定义了,而block却可以; main调用一个函数,这个函数一定是在main{},之外的,而block却可以把这段代码写在main里边; 如果是调用 没有返

xizhengmeng的专栏 419

黑马程序员————OC语言BLOCK和Protocol总结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 什么是bolck: BLOCK是什么呢?苹果推荐的类型,效率高,在运行中保存代码。用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行。 BOLCK和函数的相似性: (1)可以保存代码 (2)有返回值 (3)有形参 (4)调用方式一样。

whymerain的专栏 433

黑马程序员——OC语法,封装block和协议protocol

—-Java培训、Android培训、iOS培训、.Net培训、期待与您交流!—-一、block1.block基本认识<1>.block是一种数据类型。 <2>.block类型的数据封装了一段代码,可以在任何时候执行。 <3>.block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。 <4>.block的作用:封装一段代码,以便随时调用,简称代码块 <5>.block

pangetzp_41904129的专栏 565

黑马程序员---【OC语言】07block以及protocol

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、block block封装了一段代码,可以在任何时候执行,可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。 1、blocks的定义: int (^MySum)(int, int) = ^(int a, int b) { retu

xiaofei930306的专栏 499
上一篇: 黑马程序员——OC---内存管理
下一篇: 黑马程序员——OC---ARC
hityu
博客等级 码龄15年 1粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值