查明 Objective-C 类是否重写了方法 [重复]

2024-01-07

如何在运行时确定一个类是否重写了其超类的方法?

例如,我想知道一个类是否有它自己的实现isEqual: or hash,而不是依赖超类。


您只需要获取方法列表,然后查找您想要的方法:

#import <objc/runtime.h>

BOOL hasMethod(Class cls, SEL sel) {
    unsigned int methodCount;
    Method *methods = class_copyMethodList(cls, &methodCount);

    BOOL result = NO;
    for (unsigned int i = 0; i < methodCount; ++i) {
        if (method_getName(methods[i]) == sel) {
            result = YES;
            break;
        }
    }

    free(methods);
    return result;
}

class_copyMethodList只返回直接在相关类上定义的方法,而不是超类,所以这应该就是你的意思。

如果您需要类方法,请使用class_copyMethodList(object_getClass(cls), &count).

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

查明 Objective-C 类是否重写了方法 [重复] 的相关文章

  • 如何在iOS应用程序中捕获用户的手写签名[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在我的应用程序中 用户将请求客户提供数字化的手写签名 我需要能够在用户在触摸屏上 书写 签名时捕获签名
  • 如何检查 BOOL 是否为空?

    有没有办法在将值分配给 BOOL 之前检查该值是否为 NULL Nil 例如 我在 NSDictionary 中有一个值可以是 TRUE FALSE NULL mySTUser current user following results
  • CBPeripheral 名称有时为 null

    我正在开发一个应用程序来与蓝牙 LE 外围设备进行通信 我目前正在测试的外围设备是其中之一these http www ti com tool cc2540dk mini 有趣的是 有时当我发现它时 我会得到它的正确名称 SimpleBLE
  • ViewWillAppear 没有被 UISplitViewController 调用

    背景和目标 我有一个基于 UISplitViewController 的 iPad 应用程序 到目前为止它支持 4 个方向 但现在我想将其锁定为仅横向 我变了shouldAutorotateToInterfaceOrientation左视图
  • iCloud loadFrom Contents - 如何处理 UIDocumentStateSavingError 和 UIDocumentStateEditingDisabled

    我在我的应用程序中使用 iCloud 来加载文本文件 加载文本文件时 当我调用时 iCloud 会调用此方法 UIDocument openWithCompletionHandler BOOL success etc BOOL loadFr
  • NSURL URLWithString:引发异常

    简而言之 NSURL URLWithString 似乎引发了一个例外 根据文档 如果字符串格式错误 则返回 nil 没有提到在任何情况下都会引发异常 除此之外 我还对 URL 进行编码并检查nil在将字符串转换为 URL 之前 任何人都可以
  • 确定 NSView 是否绘制的正确方法

    有没有正确的方法来确定是否NSView实际上是否在当前视图层次结构中绘制 考虑以下情况 视图完全在屏幕外 不是强制性的 该视图不在视图层次结构的顶部 The isHidden and isHiddenOrHasHiddenAncestor不
  • 避免“在此块中强烈捕获自身可能会导致保留周期”消息

    每次我必须在块内使用全局变量或属性时 如下所示 self save if isItSaving NO self saveMyFile 我必须像这样重写 BOOL iis isItSaving id myself self self save
  • iPhone 快照,包括键盘

    我正在寻找拍摄整个 iPhone 屏幕 包括键盘 的正确方法 我找到了一些截取屏幕的代码 CGRect screenCaptureRect UIScreen mainScreen bounds UIView viewWhereYouWant
  • 我可以知道 requireGestureRecognizerToFail 到底会做什么吗?

    谁能告诉我下面的代码行到底会做什么 我已经提到过Apples https developer apple com library ios documentation uikit reference UIGestureRecognizer C
  • 设置 TableView setEditing 时无法选择 UITableViewCell

    我希望能够选择多行 如下所示的默认邮件应用程序 我有一个名为编辑的按钮 可以调用 self myTableView setEditing YES animated YES 编辑按钮成功显示单元格左侧的圆圈 如上所示的邮件应用程序 但是 当我
  • Obj-C / Swift 项目中的致命陷阱异常

    我开始将 Swift 代码集成到我的 Obj C 项目中 一切都进展顺利 但今天 当我更新到 Xcode 6 1 时 事情变得很糟糕 我从之前运行良好的 Swift 代码中收到了许多 陷阱 异常 第一次崩溃位于我的 UIFont 扩展中 这
  • iOS 以编程方式将 AVI 转换为 MP4 格式

    我的应用程序中有一个查询 因为我想将 AVI 格式的视频转换为 MP4 电影格式 所以有没有什么方法可以以编程方式执行此操作 任何代码片段将不胜感激 你需要使用AVAssetExportSession将视频转换为 mp4格式 下面方法转换
  • 创建一个包含 UIViewController 的 UIViewController

    我有一个UIViewController这允许我在视图中显示一些文本 我想添加一个输入法而不将其直接添加到此视图控制器中 此输入法将是一个按钮或一个UITextField 这个输入法会很多 但是每次都会用一个 从设置中选择它 所以我不会有一
  • 删除 UINavigationBar 下的 1px 边框 - 不起作用

    IBOutlet var navBar UINavigationBar self navBar setBackgroundImage UIImage forBarMetrics UIBarMetrics Default self navBa
  • ios 如何存储用户输入的详细信息并取回?

    How to Store用户输入的详细信息和Get it Back在ios中 我有以下关注TextFields UserName Email Re enter Email id Phone State Address Localityand
  • 观察 UIDatePicker 的变化

    我注意到没有委托来观察 UIDatePicker 中的变化 有没有一种方法可以在不确认任何内容的情况下检测选择器中何时进行更改 例如它旋转并落在新数字上的那一刻 我希望能够检测到这一点 我考虑过关键值观察 但我不认为有一个属性会立即改变 您
  • 我在 NSDateComponentsFormatter 上的 allowedFractionalUnits 上做错了什么?

    基本上我想要的是获取仅以小时表示的时间间隔的值 而不将其四舍五入为完整小时 使用NSDateComponentFormatter https developer apple com library ios documentation Fou
  • 如何连续关闭 2 个模态视图控制器?

    我有 2 个以模态方式呈现的视图控制器 A presents B which presents C 当我解雇C时 我也想解雇B 但我不知道该怎么做 解雇C self dismissModalViewControllerAnimated YE
  • Dropbox API - 使用 Dropbox 作为服务器

    我想使用文件共享服务器来使某些文件在多台计算机上的应用程序的多个实例中保持最新和恒定 例如 例如 编写多人游戏 它将所有玩家的位置存储在文本文件中 并使用 Dropbox 之类的工具在所有应用程序中保持文本文件不变 每个应用程序实例都可以根

随机推荐

  • 在AJAX上初始化Google地图刷新部分

    我可以毫无问题地显示带有标记的谷歌地图 但是当使用ajax刷新该部分时 我无法在该部分中显示地图 我猜这是因为使用 ajax 时不会触发最后的最终初始化行 function initialize var myLatlng new googl
  • Dynamics 365 Web API 电子邮件发送

    我正在为网站上的页面建立订阅 因此 潜在订阅者通过表单发布并添加到 Dynamics 365 Online 中的营销列表 然后 我根据网站上的预定工作向营销列表中的联系人提出请求 然后我需要向他们发送一封电子邮件 说明已使用此属性创建了一个
  • NetworkX:在 DAG 中查找最长路径,返回最大的所有关系

    我无法弄清楚如何更新 networkx dag find longest path 算法以返回 N 表示关系 而不是返回找到的第一个最大边 或返回与最大权重相关的所有边的列表 我首先从 pandas 数据帧创建了一个 DAG 其中包含如下子
  • Python 是 vs == [重复]

    这个问题在这里已经有答案了 可能的重复 Python 中的字符串比较 is 与 https stackoverflow com questions 2988017 string comparison in python is vs 什么时候
  • 使用 Remember_me 时注销后 Flask-Login 仍然登录

    要使用 Flask login 在 Flask 中注销用户 我只需调用 logout user 但是在添加一些额外的会话检查后 在我单击注销并再次单击返回 登录页面 后 我仍然登录 它发生了只有当我选择 记住我 时 我想我在这里误解了 se
  • 本地和远程重命名 Git 分支? [复制]

    这个问题在这里已经有答案了 有没有办法在本地重命名 Git 分支并将其推送到远程分支 即使已经有很多提交推送到远程分支 或者 是否需要创建一个新的本地分支 删除旧的本地分支 然后在远程仓库上重复操作 Yes 特点move存在以在本地重命名分
  • 创建树结构

    我正在开发一个 asp net 项目 在我的 aspx 页面中 我有一个 gridview 它有 3 列 元素 目标 父级 在客户端 我想使用 gridview 中的数据构建一个树结构 然后用数字构建一个树 我找到了有关如何构建图形的信息和
  • YouTube onPlayerReady 永远不会被触发

    知道为什么这个脚本不起作用吗 我想要的只是追踪onStateChanged事件 但也从未被调用过 当我使用下面的代码打开 html 文档时 我没有错误 youtube 脚本加载得很好 播放器对象不是undefined 看起来也不错 docu
  • 基于函数的索引没有提高查询性能

    我已经创建了视图 并在该视图中添加了我需要的以下 case 语句 并且我已经为其创建了基于函数的索引 该视图有1900000条记录 当我尝试执行该视图时 需要几个小时才能运行 并且该视图的性能非常低 我不明白如何提高性能 CREATE OR
  • Java 中最大字符串不匹配数

    我最近在 codehub 上遇到了一个问题 但无法解决这个查询 谁能帮我解决这个问题吗 给定一个长度为 N 的字符串 S 您可以选择并反转 S 中任意长度的任何子字符串 您可以多次执行此操作 通过执行操作确定最大不匹配数 不匹配 S 被定义
  • 阻止 & 符号变成 Windows 窗体绑定的助记符/加速器 [重复]

    这个问题在这里已经有答案了 可能的重复 在标签控件绑定到用户填充的属性的屏幕上 我在标签上看到带下划线的字符 助记符 因为基础数据包含 符号 例如 如果绑定属性包含 A B Trucking 则标签显示为 AB Trucking 且 B 带
  • 如何从 Azure AD 获取帐户?

    我有一个很好的 Azure Active Directory 设置有十几个用户 都是我 所以我有一个租户 ID 客户端 ID 和客户端密钥 我还在开发一个简单的控制台应用程序 它将充当该目录的公共客户端 该客户端还保存用户名和密码列表 因为
  • 在从类构造函数调用的方法中初始化最终变量[重复]

    这个问题在这里已经有答案了 今天我遇到了一种奇怪的行为 我不明白为什么 想象一下 我们在 Java 的一个典型类中有一个 Final 变量 我们可以立即初始化它或在类构造函数中初始化它 如下所示 public class MyClass p
  • indexOfObjectsPassingTest 或filteredArrayUsingPredicate 哪个性能更快?

    当需要过滤 NSArray 以获取返回数组中的项目子集时 哪种方法更快更频繁且在边缘情况下 以下测试 Release模式下编译 在Mac Pro上执行 indicate that filteredArrayUsingPredicate慢于i
  • xcode 中的文件夹结构与 finder 中的文件夹结构

    我在 xcode 中有一个项目的以下文件夹结构 但是 我在Finder中有上述文件结构 有没有办法将文件结构从 xcode 反映到 finder 我最近发现了一个命令行工具这将完全满足您的需要 你可以在这里找到它 https github
  • 将单击的按钮的值从一个页面传递到另一页面 输入字段

    这个问题问得很奇怪 兜圈子 我有 2 页 第 1 页 上面有一个按钮 喜欢
  • 使用 Mockito 2 模拟服务会导致存根错误

    我尝试使用 Mockito 模拟类的行为 这使用 Mockito 1 x 有效 迁移到 JUnit 5 和 Mockito 2 似乎不再起作用了 ExtendWith MockitoExtension class public class
  • 为地图中的多边形着色,以便相邻多边形具有不同的颜色

    我制作了以下地图 library sf library leaflet library leafgl library colourvalues library leaflet extras nc lt st read system file
  • runMain 中的 sbt 非法动态引用

    我正在尝试运行代码生成器 并向其传递文件名以写入输出 resourceGenerators in proj Compile Def task val file resourceManaged in proj Compile value sw
  • 查明 Objective-C 类是否重写了方法 [重复]

    这个问题在这里已经有答案了 如何在运行时确定一个类是否重写了其超类的方法 例如 我想知道一个类是否有它自己的实现isEqual or hash 而不是依赖超类 您只需要获取方法列表 然后查找您想要的方法 import