iOS中协议(Protocol)的简单用法

苹果开发者文档智能查询:基于MCP协议构建AI助手知识库 在软件开发领域,API文档查询是开发者日常工作中的高频需求,传统手动检索方式效率低下且容易打断工作流。Model Context Protocol(MCP)作为一种标准化协议,为AI智能体提供了访问外部工具和数据源的通用接口,其核心原理是通过定义统一的工具调用和资源读取规范,实现AI能力的可扩展性。这一技术价值在于将静态文档转化为动态知识源,使AI助手能够实时获取权威信息。在苹果生态开发场景中,开发者经常需要查阅Swift、SwiftUI、UIKit等框架的官方文档。通过构建MCP服务器,可以将苹果开发者文 阅读详情

1. 基本概念

一个Protocol是由一系列的方法声明组成的。任何类只要遵守了Protocol, 就相当于拥有了Protocol的所有方法声明。
协议中有2个关键字可以控制方法是否要实现(默认是@required,在大多数情况下,用途在于程序员之间的交流)
@required:这种属性的方法必须要实现(若不实现,编译器会发出警告)
@optional:这种属性的方法不一定要实现。

2. 示例代码

声明一个Person类:

#import <Foundation/Foundation.h>
#import "baseProtocol.h"
@interface Person : NSObject <baseProtocol>
@end

声明一个workProtocol协议,该协议遵循baseProtocol协议

#import "workProtocol.h"
@protocol baseProtocol <NSObject,workProtocol>
@required
- (void)run;
- (void)eat;

@optional
- (void)playGame;
@end
iOS从入门到精通之 :协议(protocol) Hello 大家好,我是Stefan,今天给大家带来的时iOS编程中非常重要的一个知识要点:协议 1.1 什么是协议  1.1.1 协议基本概念 《倚天屠龙记》中,峨眉派的纪晓芙因为爱上了明教光明右使杨逍,违反了峨眉派“不得与魔教人士往来”的条规,最终被灭绝师太一掌毙命,香消玉殒。可惜一位绝世佳人,却因为条条框框的门规协定而枉送了性命。 iOS编程中的协议其实也是如此,iOS里面协议不是类 阅读详情

相关推荐

swift 协议Protocol的基本用法

protocol(协议)用户统一方法和属性的名称,而不实现任何功能,我相信很多学过ios的对protocol都不会陌生,swift中的protocol不仅定义方法还能定义属性。本文简单的实现了swift协议方法的具体方法,只是想记载一下,如果还要更深入的了解protocol方法,可以看看swift中的官方文档。下面就是protocol的具体代码的一些实现。 //  PersonViewC

qq_34926035的博客 1489

iOS 的 Protocol 协议的使用

protocol -->用来声明方法. 用来存储一系列方法的声明.只是一个.h文件 任何类只要遵守了protocol,就相当于拥有了protocol的全部方法的声明. @protocol GMProtocol <NSObject> @required //必须实现,如果不写就默认是required.如果不实现仅是会弹出警告.(因为是OC是弱语法) - (void) re...

weixin_30892889的博客 161

智能体评测技术与实践:从评估维度到DeepEval实战指南

智能体评测技术与实践:从评估维度到DeepEval实战指南 本文系统探讨了AI智能体的评测体系与实践方法。首先从四个关键维度构建评估框架:基础能力(意图理解、知识完整性)、复杂任务(多轮对话、动态工作流)、可靠性(幻觉抑制、安全合规)以及工具效率(参数填充、多工具协同)。其次分析了主流评测工具,包括xBench的动态双轨评估、DeepEval的全链路监控等解决方案。最后详细介绍了DeepEval的实战应用,涵盖环境配置、测试用例构建、指标配置及CI/CD集成,展示了如何通过代码化评估实现智能体质量的持续提升

Linda的自动化测试之旅 3413

OC总结——Protocol协议

主要总结的是一些有关Protocol的一些基本使用方法 ***************************** **以后还会添加一些基本的使用例子。** *****************************

440

MySQL等保三级合规实践:如何安全配置root账户的本地与受信主机登录策略

本文详细介绍了MySQL在等保三级合规框架下如何安全配置root账户的本地与受信主机登录策略。通过分析root账户的特殊保护需求,提供三种安全加固方案,包括限制访问范围、限定登录IP和完全禁止远程登录,并指导创建安全的远程管理账户。文章还涵盖了密码策略强化、日志审计配置和网络层防护等关键合规要求,帮助用户实现MySQL的等保三级全面合规。

weixin_42522964的博客 259

Silvaco Atlas入门指南——从零开始掌握半导体器件仿真

本文为Silvaco Atlas半导体器件仿真软件的入门指南,详细介绍了从零开始掌握该工具的核心流程。内容涵盖Atlas的基本概念、仿真流程、核心文件(输入、结构、输出文件)、交互式与批处理两种操作模式,并逐步演示了如何从定义网格、划分区域、设置电极到进行掺杂、选择物理模型并求解,最终获取和分析器件特性的完整步骤。旨在帮助微电子相关专业人员和工程师快速上手这一强大的“数字实验室”,提升半导体器件设计与研发效率。

weixin_29306317的博客 398

iOS:Protocol详解

目录 一,作用 二,基本使用 三,特点 四,应用场景 五,系统协议 六,底层代码 一,作用 1,公开方法一般都放在.h文件中,如果想隐藏实现细节,可以把这些方法放到协议中,再让该类遵守此协议(一个协议对应一个类) 2,将一些公共方法抽取出来封装成协议,任何类想拥有这些方法,只需遵守此协议即可(一个协议对应多个类) 问题:公共方法为什么不放在父类中? 答:下图中D类跟E类的公共方法可以放在父类B中,但D类跟G类的公共方法放在父类的父类A中显然是不合适的,这时协议就能很优雅的解决 ..

小天空的博客 2169

实战交易策略 篇二十二:情绪流龙头交易策略

在股票市场中,机构主导趋势,游资驱动热点,散户易被情绪裹挟,形成“金字塔”式生态链,并存在情绪传递、强者恒强、物极必反的规律特点。股市是资金驱动的情绪博弈场,价格波动由群体心理、资金博弈和预期差共同驱动,核心是资本逐利性与人性贪婪恐惧的交织,兼具资源配置、财富再分配与风险定价功能。涨停加速与逃逸缺口(主升强化)凹字板/平台突破(趋势延续)天量弱转强(分歧买点)不参与首波(二波策略)情绪周期(道术合一)主线思维(聚焦核心)开盘抢筹(竞价博弈)一字助攻(情绪强化)分批进出(滚动操作)

生活在别处 1486

JavaScript中的对象,入职3个月的前端程序员面临转正,四轮面试后多久出结果

如果你已经下定决心要转行做编程行业,在最开始的时候就要对自己的学习有一个基本的规划,还要对这个行业的技术需求有一个基本的了解。有一个已就业为目的的学习目标,然后为之努力,坚持到底。如果你有幸看到这篇文章,希望对你有所帮助,祝你转行成功。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)一个人可以走的很快,但一群人才能走的更远!

2201_75604580的博客 907

2024年数字IC秋招-海康威视-数字逻辑设计工程师-笔试题

笔试题型:单选 + 多选笔试平台:百一测试(电脑监控)笔试时间:1h30minA. AW通道B. D通道C. B通道D. AR通道return x++;x = 5;y = Foo(x);

qq_42135020的博客 3199

卸载python弹框报错:Could not set file security for file ‘D:\Config.Msi\abd5.rbf‘. Error: 5. Verify...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 6471

Object C学习笔记15-协议(protocol)

  在.NET中有接口的概念,接口主要用于定义规范,定义一个接口关键字使用interface。而在Object C 中@interface是用于定义一个类的,这个和.NET中有点差别。在Object C中有一个协议(protocol) 的概念,这个和.NET中的interface类似。   协议(Protocol) 在列出的方法在本类中并没有相应实现,而是别的类来实现这些方法,而定义协议必须使用...

weixin_34148340的博客 144

芒果YOLOv12改进13:独家原创改进最新 CFNet 核心结构|即插即用 | 首发改进显著提升检测性能,小目标检测涨点必备

芒果YOLOv12改进13:独家原创改进最新 CFNet 核心结构|即插即用 | 首发改进显著提升检测性能,小目标检测涨点必备

包括YOLOv5、YOLOv7、YOLOv8等模型改进 285

iOS中使用协议(protocol)的用法

协议在ios中是和代理一块成双成对的使用的.在后面的UI阶段我们会经常遇见,如,datable... 如何定义一个自己的协议尼.列位上眼呐! 1.协议的表示:@protocol 2.如何创建一个协议文件步骤如下: New File->OS X ->Cocoa ->Objective-c protocol.然后输入一个协议的名称.可以随便起.咱们这里叫(CarsStandar...

whuizhou的专栏 4809

NSGA-II 多目标优化 —— 理论、案例与交互式 GUI 实现

本文详细介绍了 NSGA-II 多目标优化算法的基本原理、数学模型和实现流程。从非支配排序、拥挤距离计算到遗传操作,NSGA-II 通过对种群进行分层和排序,能够有效求解多目标优化问题,获得 Pareto 前沿解集。通过机械结构优化、资源分配和控制参数调优等典型案例,我们展示了 NSGA-II 在实际工程中的广泛应用。为帮助工程师和研究者更直观地理解算法求解过程,本文提供了基于 Python 与 PyQt6 的交互式 GUI 演示系统代码示例。

闲人编程的博客 2119

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

协议的用法 ios protocol

转自:http://mobile.51cto.com/iphone-278986.htm

crs258的专栏 487

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

协议(Protocol)的用法和代码例子 ios

协议,是通过网络,计算机使用者进行通讯后,互相进行约定规定的集合。两个类进行通讯,用协议就比较方便。下面是 CocoaChina 版主“angellixf”为新手写的协议入门介绍以及代码例子,希望对刚入门开发者有所帮助 一、说明   1.协议声明了可以被任何类实现的方法   2.协议不是类,它是定义了一个其他对象可以实现的接口   3.如果在某个类中实现了协议中的某个方法,也就是这个类

上海-相奇 博客技术资源分享 1002

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【黑马程序员】---ARC、block类型和protocol协议总结

------- android培训、java培训、期待与您交流! ---------- ARC、block类型和protocol协议总结 1.ARC ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。 ARC的判断准则:只要没有强指针指向对象,就会释放对象

u010001701的专栏 558

iOS 之 Protocol 协议 委托 代理 详解

星星只代表推荐顺序,不代表文章质量,数字越大优先级越高。 推荐指数:1星 iOS 之 Protocol 详解 http://www.jianshu.com/p/f93147740bf2 推荐指数:2星 IOS开发之协议和代理 http://www.jianshu.com/p/46ac7d6b43d2 推荐指数:3星 你真的了解iOS代理设计模式吗? http://www.jianshu.com/p...

weixin_34054931的博客 122

ios深度解析之Swift(枚举,继承,协议,扩展)

// 1.枚举 //enum 枚举命: 类型{ // // case 分支1 = 赋值1 // case 分支2 = 赋值2 // //} enum PersonIndentity: String { case Teacher = "Teacher_id" case Student = "Student_id" } // 类 class Person {

liyuBlog的博客 2025

黑马程序员 block、protocol

——- android培训、java培训、ios培训期待与您交流!一、block基础用法block是OC中的一种数据类型,在iOS开发中被广泛使用 ^是Block的特有标记 作用: block用于封装一段代码,可以在任何时候使用。 block可以作为函数参数或者函数返回值,而其本身又可以带参数或返回值。定义block变量返回值数据类型(^变量名称)(参数类型,参数

千江有水千江月,万里无云万里天。 422

delegate和protocol

protocol和delegate完全不是一回事,放在一起说,只是因为我们经常在同一个头文件里看到这两个word。 协议(protocol),就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现。 委托(delegate),顾名思义就是委托别人办事,就是当 一件事情发生后,自己不处理,让别人来处理。 举个浅显的例子: 我上班的工...

longtianye的博客 138

ASP.NET Core控制器式Web API指南:返回类型、格式化器与Swagger集成完整实战手册

本文基于官方 **ASP.NET Core 文档库(AspNetCore.Docs)** 中的权威资料,带你快速掌握**控制器式(Controller-based)Web API** 的三大核心技能:**动作返回类型**的取舍、**响应格式化器**与内容协商机制,以及 **Swagger 集成**自动生成 API 文档。无论你刚接触 .NET Web 开发,还是准备重构现有接口,这份指南都能帮你少

gitblog_00122的博客 983

iOS之协议(protocol)的使用

1、非正式协议 当某个类实现NSObject的该类别时,就需要实现该类别下的所有方法,这种基于NSObject定义的类别即可认为是非正式协议。 类别可以实现非正式协议,这种类别以NSObject为基础,为NSObject创建类别,创建类别时即可指定该类别应该新增的方法。 2、实例 1)定义以NSObject为基础的类别Eatable #import // 以NSObject为基础定义

yuxikuo_1的专栏 1096

iOS Protocol 详解

一、概述 Protocol(协议)的声明看起来类似一个类的接口,不同的是Protocol没有父类也不能定义实例变量。Protocol是一种特殊的程序设计结构,用于声明专门被别的类实现的方法。因为OC是单继承的,由于不支持多继承,所以很多时候都是用Protocol和Category来代替实现多继承。Protocol只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但具...

The_star_is_at的博客 3371

iOS 协议 protocol

iOS中的协议说白了就是方法的声明,只声明不需要实现,实现的部分由遵守协议方完成. 先看个协议的小例子:这个例子是先给出两个协议,再创建两类人遵守协议. 流氓协议(RogueDelegate.h) #import <Foundation/Foundation.h> /**流氓协议*/ @protocol RogueDelegate <NSObje...

a861465724的博客 197
上一篇: iOS中Block的简单用法
下一篇: iOS中NSFileManager的简单用法
路小小卡
博客等级 码龄15年 87粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值