Objective C 协议需要至少实现一组方法中的一个

2024-02-22

在 Objective C 中,协议方法可以是必需的,也可以是可选的:

@protocol AProtocol

@required
-(void) aRequiredMethod;

@optional
-(void) anOptionalMethod;

@end

有没有一种优雅的方式来表示符合协议的对象必须响应一组方法中的至少一个,我的梦想是这样的

@protocol AProtocol

@anyof
-(void) onePossibleMethod;
-(void) anotherPossibleMethod;

@optional
-(void) anOptionalMethod;

@end

EDIT:

这是(据我所知),不可能的,如果声明为符合给定协议的类完全由可选方法组成,是否有办法引发编译时警告

@protocol AProtocol

@optional
-(void) onePossibleMethod;
-(void) anotherPossibleMethod;

@end

至少其中一项未能实施。


在 Objective-C 中没有很好的方式来表达这一点。如果你必须这样做,我认为最惯用且代码膨胀最少的方法是这样的:

@protocol AProtocol

@required
- (SEL)methodToUse; // returns one of "onePossibleMethod" or "anotherPossibleMethod"

@optional
-(void) onePossibleMethod;
-(void) anotherPossibleMethod;
-(void) anOptionalMethod;

@en
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Objective C 协议需要至少实现一组方法中的一个 的相关文章

  • 断点条件错误

    我已经根据条件设置了断点 event name isEqualToString Some Name 这很好用 但是 当我尝试添加另一个带有条件的断点时 part name isEqualToString Some Value With A
  • Objective C (iphone) 关于发布的问题

    如果我创建一个视图 并将其添加为子视图并将其添加到数组中 是否必须释放它两次 UIView cat UIView alloc initWithFrame someFrame self view addSubview cat self ani
  • 如何编辑应用程序包中的文件?

    在我的应用程序中 我从存储在捆绑资源中的 CSV 文件加载数据 但是 我希望能够在用户点击 更新 按钮时以编程方式更新此文件 有没有办法以编程方式更改应用程序包中的资源 这是我用来访问该文件的代码 NSString path NSBundl
  • Swift:协议、结构、类

    我开始学习 Swift 语言 但在理解协议 结构和类方面遇到了困难 我来自 Android 方面的编程 所以我相信 Swift 协议基本上是 Java 接口 其中每一个的正确用例是什么 这些类比并不 完全 正确 但这就是我所理解的要点 是的
  • 使用 ZBarSDK 时 iPhone 相机失去自动对焦功能

    我正在开发一个应用程序 用户可以选择是否要扫描条形码或拍摄某物的照片 为了拍照 我正在使用UIImagePickerController照常 为了扫描条形码 我使用 ZbarSDK 1 2ZBarReaderViewController 拍
  • 检查 Objective-C 块类型?

    这主要是出于好奇 我不太确定它的实际用途是什么 但就这样吧 由于块也是 Objective C 对象 是否可以检查它们的类型 也就是说 它是否响应isKindOfClass 消息以及如何使用该消息来处理块 我天真的以为事情大概是这样的 vo
  • 带有文本字段的 iPhone AlertView

    我有一个UIAlertView with a UITextField在里面 我想输入mail id并提交于UIAlertView s ok按钮 但是UITextField in the UIAlertView没有回复 请帮助我 thankz
  • 检查 Swift 中关联类型是否符合协议

    在类似情况下 如何检查对象是否符合 可表示 协议 protocol Representable associatedtype RepresentType var representType RepresentType get set cla
  • 动画 UICollectionView 单元格大小更改并重新定位周围单元格

    Goal 以动画方式改变单元格的高度并重新定位周围的单元格 设想 集合视图中的某些单元格会加载远程图像 最初 这些单元格的大小是静态的 并显示活动指示器 加载图像后 会将其添加到其单元格中 并且更改单元格的高度以适合照片 Notes 我正在
  • 如何清除代码中的 NSLog 输出?

    有没有办法清除代码中的控制台输出 thanks 我喜欢的快捷方式 Simply USE K Keyboard Shortcut when you want to clear the NSLOG Data
  • 如何去掉 UIWebView 上的状态栏背景?

    从 iOS 11 开始 当UIWebView全屏时 状态栏上会出现与屏幕颜色相同的假背景UIWebView背景 有人知道如何摆脱它吗 甚至添加IUWebView到故事板并使其全屏将使状态栏背景出现 我一直在尝试编辑 UIWebView 的大
  • 重叠的装载机圆

    我试图重现苹果为应用程序 活动 制作的重叠圆圈 见下图 如果您使用标准贝塞尔路径 起始 结束位置将仅在 0 到 2PI 之间产生影响 例如 如果您尝试填充 4PI 即使使用一些阴影 则无法模拟重叠加载 如何制作类似于苹果解决方案的东西来创建
  • 添加/删除带有动画的 UITableViewCell?

    我知道这听起来像是一个愚蠢的问题 但我到处都看过 我怎样才能做到这一点 我知道如何使用 swype to delete 方法来执行此操作 但是我如何在该函数之外执行此操作 请发布一些代码示例 Thanks Coulton self tabl
  • iPhone/Objective-C - 呈现视图和委托时的 UIDocumentInteractionController 类参考

    我在用UIDocumentInteractionController在我的应用程序中 以便在我的应用程序中呈现 Instagram 过滤器屏幕 如下所述 http instagram com developer iphone hooks h
  • ios7 navigationController PushViewController 动画错误

    看来我在 navigationController PushViewController 方法中发现了一个错误 为了重新创建它 我采用了示例主详细信息项目并对 didSelectRow method void tableView UITab
  • 从命令行调试 iOS 应用程序构建

    我正在通过命令行构建 iOS 应用程序 但在调试它时遇到问题 如果我使用 XCode 进行构建 它会让我在设备上 构建和调试 而不会出现任何问题 但现在 我不知道如何使用 gdb 在设备上启动它并逐步执行它 如果我尝试 添加自定义目标 可执
  • UIDocumentInteractionController 阻止“打开方式”表中的空投

    在我的应用程序中 我允许用户通过 Instagram 分享照片 这需要使用 UIDocumentInteractionController 如果手机支持 则会自动检测空投 如何将其从 打开方式 操作表中删除 即使我使用 UIActivity
  • 自定义 UITableViewCell 选择样式?

    当我点击我的UITableViewCell 当我单击单元格时 背景部分 我的背景图像未覆盖的区域 会变成蓝色 另外 所有的UILabel单击时单元格上的 s 变为白色 这就是我想要的 然而 我不想要的是当我点击它时的蓝色背景 但如果我这样做
  • iPhone 和加密库

    我想我必须在我的 iPhone 应用程序中使用加密库 我想问你有关苹果公司实施的加密货币出口政策的影响 我需要做一些额外的事情吗 例如填写表格等 1 如果我使用 MD5 进行哈希处理 2 如果我使用对称加密 Thanks EDIT 2009
  • 使用基于约束的布局自动调整 NSTokenField 的大小

    有没有办法自动调整大小height使用约束的 NSTokenField 保持宽度恒定 sizeToFit应该有效 但事实并非如此 如果我设置一个约束来保持宽度不变并调用此方法 它将忽略约束并仅调整宽度大小 当我想要的是仅调整高度大小时 基于

随机推荐

  • Pusher 连接数是如何计算的?

    我想了解的定价方案Pusher http pusher com pricing 根据他们的定价 Bootstrap 允许100 max Connections 我的问题是这样的 如果我的页面每天有 10 000 名访问者 每个人订阅不同的频
  • 为什么 MSChart 不填充整个图表区域?

    我正在创建几个图表 但我无法弄清楚为什么图表的左侧和右侧有这么多空白区域 我有一个 Winforms 图表 ChartArea 和系列 图表的左侧和右侧总是有一英寸的空间 看起来像是浪费的空间 我需要更改什么设置才能减少该空白空间的大小 我
  • Numpy 弃用关于布尔索引的警告

    这段代码 import numpy as np def some method y threshold print type y y shape y dtype c np zeros y shape c y gt threshold 1 结
  • Alembic 修订 ID 代表什么?

    我刚刚开始研究 Alembic 来自 Django 我们在那里South http south aeracode org 迁移我们的数据库模式 即soon https docs djangoproject com en 1 7 topics
  • 将字符串转换为 Double C#

    我在数据库中有一个浮动字段 我的应用程序是WindowsForm 我需要将格式 43 27 的文本框中的值转换为双精度 当我执行此操作 COnvert ToDouble txtbox Text 时 出现异常 提示输入字符串格式错误 如何纠正
  • .net core API项目中可以使用角度存储用户信息的位置

    我有一个 Angular 项目 我正在使用 net core 2 o Web API 我将用户信息存储在 Jwt 中 我想记录每个数据库操作 我可以通过发送 jwt 并从服务器端的 request header 中获取来访问用户信息 但问题
  • 根据 swagger 文件验证 json 负载 - json-schema-validator

    我正在尝试根据包含服务协议的 swagger 文件验证 json 有效负载 我正在使用 json schema validator 2 1 7 库来实现此目的 但目前它没有针对指定的模式或最小 最大长度进行验证 Java代码 public
  • 如何在 vim 中注释同时尊重缩进?

    我试图在 vim 中进行映射以插入注释 例如 带空格的框 同时尊重缩进 所以 不要这样评论 class MyFrame wx Frame def init self title pos size wx Frame init self Non
  • 在 ag-grid 中构建我们自己的具有分组功能的 cellRenderer

    以前我有columnDefs用于在没有 Angular 组件的情况下使用内置渲染 ag grid 单元grouping功能 colDef headerName HeaderName field a editable false cellRe
  • 如何自定义Tab指示器宽度?

    我想要这种类型的选项卡指示器如何实现这一点 我已经尝试了带有可绘制可选择处理程序的所有解决方案 但没有得到任何东西 有一个更简单的方法来实现这一点 只需提供一个drawable您的自定义指标的app tabIndicator 例如 在这种情
  • 在 grantType=authorization_code 请求后,Google 代理授权流程不会继续

    我正在开发一个API AI代理 并尝试实现帐户链接功能 文档位于oauth2 代码流 https developers google com actions identity oauth2 code flow真的很有帮助 我能够创建我的 o
  • 获取远程地址/IP - C Berkeley Sockets

    如果我连接了套接字文件描述符 通过连接或绑定 请键入SOCK STREAM 是否可以获取远程地址 IP地址 我需要在一个函数中执行此操作 其中除了套接字文件描述符之外没有任何其他数据 getpeername http pubs opengr
  • 定义模板后声明函数

    假设我有一个模板函数 template
  • SwiftUI 4:可以在视图层次结构的不同级别进行多个 .navigationDestination() 调用吗?

    我想知道是否可以打电话navigationDestination 多次在不同层次上在视图层次结构中 我用谷歌搜索 但我在网上找到的所有示例都将其称为顶级视图NavigationStack 我尝试了以下代码 它工作得很好 但我不确定这是偶然的
  • Java Sleep 不在循环中工作[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想在我的java程序中做的是 当我按下按钮时 它会显示文本textfield在时间间隔中 即我按下按钮然后jFrame弹出窗口 有一个标签
  • 在 Android Studio 中快速导入绘图的方法?

    在 Android 项目中的某个时刻 您需要导入一些可绘制对象 无论是工具栏图标 图像 UI 功能 res drawable目录 大多数时候 您会针对最常见的限定符缩放图像 drawable hdpi drawable mdpi drawa
  • SQL Server 序列设置当前值

    我正在使用 SQL Server 2012 v11 0 2100 我想创建一个以随机 动态 数字开头的序列 但我无法做到这一点 我也努力为此找到一个好的解决方案 但是我还没有找到令我满意的东西 我尝试过但失败的案例 DECLARE sth
  • WiX 在卸载时不会删除注册表项

    我创建了一个带有条件 DISABLEMSIUPGRADE 的组件 当我使用我们的ExternalUI 安装 MSI 时会设置该组件 但是 MSI 不会删除卸载中的条目 我认为问题是由条件引起的 但我无法修复它
  • StructureMap - 覆盖命名实例的构造函数参数

    您是否可以覆盖命名实例的构造函数参数 似乎只能对默认实例执行此操作 我想要做 ObjectFactory With name EqualTo Matt GetNamedInstance
  • Objective C 协议需要至少实现一组方法中的一个

    在 Objective C 中 协议方法可以是必需的 也可以是可选的 protocol AProtocol required void aRequiredMethod optional void anOptionalMethod end 有