如何在使用继承时获取目标 C 中调用者的类名称?

2024-03-18

我有一个名为 BaseClass 的基类。许多类派生自基类,即子类 1、子类 2 和子类 3。

@interface  BaseClass: NSObject{
}
-(void)configure;
@end;

@implementation
-(void)configure{
NSLog(@"This needs to log from which sub class this method was called");
}
@end;

可以通过创建子类的实例或在子类的实现中调用配置方法。

我需要知道这个方法是从哪个子类调用的。

这可能吗?


不可以。方法无法知道它们是从哪个其他对象的方法中调用的。甚至没有呼叫者身份的概念。可以从根本没有调用者对象的 C 函数中调用方法。

我需要知道这个方法是从哪个子类调用的。

话虽这么说,您可能只想知道对象属于哪个(派生)类:

NSLog(@"My class: %@", NSStringFromClass([self class]));

2014 年附录:有一个gnu扩展__builtin_return_address http://gcc.gnu.org/onlinedocs/gcc/Return-Address.html可能用于此目的。迈克·阿什展示 https://mikeash.com/pyblog/friday-qa-2014-01-10-lets-break-cocoa.html如何使用它来提取调用者符号名称(请参阅“调用者检查”)。我仍然认为整个方法有点脆弱,应该只用于调试。

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

如何在使用继承时获取目标 C 中调用者的类名称? 的相关文章

  • 如何从 UILabel 创建图像?

    我目前正在 iPhone 上开发一个简单的类似 Photoshop 的应用程序 当我想要展平图层时 标签位于良好的位置 但字体大小不佳 这是我要展平的代码 UIGraphicsBeginImageContext CGSizeMake wid
  • 比较 Objective C 中的 NSNumber

    我是 Objective C 的初学者 对这种情况有点困惑 我有以下代码 if number1 lt number2 NSLog THE FOLLOWING NUMBER NSLog number1 NSLog IS LESS THAN N
  • 如何用Block简化回调逻辑?

    假设我需要与一个提供协议的类进行通信 并在操作完成时调用委托方法 如下所示 protocol SomeObjectDelegate required void stuffDone id anObject void stuffFailed e
  • NSArray 对象的 RACSignal

    我的 ViewController 上有一个 NSArray 的 ViewModel 对象 property 非原子 强 NSArray viewModels ViewModel 对象看起来像这样 interface ViewModel N
  • 如何将字符串从 Applescript 传递到 Objective C

    我正在开发一个应用程序 我需要能够传递一个字符串变量 from 苹果脚本 to 目标C 我已经弄清楚如何从 Objective C 类中的方法运行 Applescript 但我需要能够将 NSString 设置为 Applescript 中
  • 检查系统时间是自动还是用户设置

    我需要在当前的项目中设置用户证明时间 我围绕这个问题发现了很多不同的问题 但似乎没有一个问题有我正在寻找的答案 这些是我到目前为止看过的问题 XCODE 如何从设备获取 验证准确的时间戳 https stackoverflow com qu
  • NSOperation 中委托的使用

    我正在尝试利用CLLocationManager in an NSOperation 作为其中的一部分 我需要能够startUpdatingLocation然后等到收到 CLLocation 后才完成操作 目前我已经完成了以下操作 但是委托
  • CGContextSelectFont 等效项

    在 iOS 7 CGContext SelectFont 中已弃用 已弃用的消息说我必须使用 Core Text 但我不知道哪一个与这段代码完全相同 CGContextSelectFont context Helvetica kBarLab
  • 如何修复 ReactiveCocoa(带有 CocoaPods)的安装?

    这里是新手 尝试将 ReactiveCocoa 2 2 4 和 CocoaPods 安装到项目中 但在运行时遇到错误 我用过github 上的这个 podspec https github com CocoaPods Specs blob
  • 检查一个类是否是另一个类的子类

    我想在不创建实例的情况下检查一个类是否是另一个类的子类 我有一个类 它接收类名作为参数 作为验证过程的一部分 我想检查它是否属于特定的类系列 以防止安全问题等 有什么好的方法可以做到这一点吗 is subclass of http php
  • 断点条件错误

    我已经根据条件设置了断点 event name isEqualToString Some Name 这很好用 但是 当我尝试添加另一个带有条件的断点时 part name isEqualToString Some Value With A
  • let/var 如何解决可变性? [复制]

    这个问题在这里已经有答案了 我没有任何问题 我只是想对有关可变性的问题进行一些澄清 在 Objective C 中我们会使用例如NSMutableArray得到一个可变数组和NSArray得到一个不可变的 我对两者的内部运作了解不多 但据我
  • 由于 2.23 导致 iOS 应用程序被拒绝 - iOS 数据存储指南

    以下是 Apple 关于拒绝的消息 2 23 应用程序必须遵循 iOS 数据存储指南 否则将被拒绝 2 23 详情 在启动和内容下载时 您的应用程序会存储 6 5 MB 这并不意味着 遵守 iOS 数据存储指南 下一步 请验证只有用户使用您
  • Objective C (iphone) 关于发布的问题

    如果我创建一个视图 并将其添加为子视图并将其添加到数组中 是否必须释放它两次 UIView cat UIView alloc initWithFrame someFrame self view addSubview cat self ani
  • 在回调函数中调用目标c函数

    如何在回调函数中调用目标c函数 回调函数 static OSStatus inputRenderCallback void inRefCon AudioUnitRenderActionFlags ioActionFlags const Au
  • 访问 google reader 的 Endpoints API 时出错

    我正在尝试在iPhone APP中实现google reader 到目前为止我已经成功收到了sid and auth 当我尝试使用以下命令调用 Endpoints API 时 问题就出现了GET 这是代码 ASIHTTPRequest re
  • 如何为 Nslocal 通知设置自定义重复间隔......?

    我是 iphone 开发新手 我正在尝试在我的项目中使用 NslocalNotification 我需要每 2 小时或每两天或每两个月等给出提醒 目前我正在使用 NslocalNotification 重复间隔 但它仅适用于使用 Ncale
  • 使用 ZBarSDK 时 iPhone 相机失去自动对焦功能

    我正在开发一个应用程序 用户可以选择是否要扫描条形码或拍摄某物的照片 为了拍照 我正在使用UIImagePickerController照常 为了扫描条形码 我使用 ZbarSDK 1 2ZBarReaderViewController 拍
  • 带有文本字段的 iPhone AlertView

    我有一个UIAlertView with a UITextField在里面 我想输入mail id并提交于UIAlertView s ok按钮 但是UITextField in the UIAlertView没有回复 请帮助我 thankz
  • 如何将自定义 C 代码放入 SwiftPM 包中?

    我正在尝试将 C 代码打包到 Swift 模块中 我们称之为CModule 一旦我将其放入项目的基本文件夹中 Swift模块 并配置了搜索路径 我可以在 Swift 文件中自动完成工作 并检测错误 警告 问题是 导入时它无法识别该模块 并且

随机推荐

  • 无法在 eclipse 中创建 Maven 项目

    我在企业防火墙后面的 Windows 7 计算机上安装了 Eclipse Luna 和 Maven 3 2 3 尝试从原型创建项目会导致以下错误 无法从任何配置的存储库解析原型 org apache maven archetypes mav
  • Lucene 中的关键字(OR、AND)搜索

    我在我的门户 基于 J2EE 中使用 Lucene 来提供索引和搜索服务 问题出在Lucene的关键字上 当您在搜索查询中使用其中之一时 您会收到错误消息 例如 searchTerms ik OR jij 这工作正常 因为它会搜索 ik o
  • 从 JSON 中插入 HTML 选择标签选项

    所以 事情是这样的 我有一个 JSON 对象保存在我的 web 应用程序的 localStorage 中 此 JSON 被保存为字符串 其中JSON stringify 在我的函数之一内 在页面加载上 localStorage setIte
  • socket.io的emit函数中允许使用数组吗?

    是否可以发送对象数组socket io发出函数 例如 io emit message data 123 data 456 Yes it is 您可以发送几乎任何类型 并且可以将任何类型嵌套在另一种类型中 Strings Numbers 12
  • 为什么匿名类型实例不能接受实体框架查询返回的空值?

    当我尝试运行以下实体框架查询时 var l from s in db Samples let action db Actions Where x gt s SampleID x SampleID x ActionTypeID 1 First
  • 如何存储/计算单个簇大小并在 NetLogo 中绘制它们

    我有一个生成黄色斑块簇的模型 我有兴趣查看簇大小的频率分布 为此 我从 NetLogo 代码库中的 补丁集群示例 中选择了代码 它似乎在查找簇方面起作用 参见下面的照片 尽管我希望它不计算簇中的绿色斑块 但我不知道如何获取大小 或斑块计数
  • 关于 printf 语句的混淆

    所以我正在运行这段代码 include
  • Android:使用 Gradle 构建,使用 Maven 签名

    我的 Android 构建在持续集成中运行良好 但 androidSigning 除外 Gradle 可以允许开发人员清晰地捕获密钥库路径和密码 这并不令人满意 1 你有解决方法吗 比如密码加密 2 我现在的想法是使用 Gradle 进行构
  • 自动递增第二列[重复]

    这个问题在这里已经有答案了 我有一个有 2 列的表 ID 列自动递增 我正在尝试自动增加与 ID 相同的用户列id列 但带有 user 前缀 例如 user100 其中 ID 也是 100 基本上就像 stackoverflow 上所做的那
  • 具有拉伸对齐功能的 Flexbox 容器中垂直居中的 div

    我需要将一个 div 放在 Flex 容器中 并保持该 div 的整个容器的高度 显然 我有align items stretch用于保持高度或align items center用于定心块 Flexbox 模型将 div 居中并保持父容器
  • 在 React 中切换类

    我正在将 React 用于一个有菜单按钮的项目 a href i i a 还有一个 Sidenav 组件 例如
  • 2 个纬度/经度点(坐标)列表之间的地理/地理空间距离

    我有 2 个列表 list1 list2 以及各个地点的纬度 经度 一份清单 list2 的地点名称list1不具有 我也想要 list1 中每个点的近似位置 所以我想指出一点list1 尝试寻找最近的点list2并采取该地点 我对其中的每
  • 将 .class 转换为 .java

    我有一些 class 文件需要转换为 java 所以我这样做了 javap c ClassName class 我一直有同样的错误 ERROR Could not find ClassName class 你们知道可能是什么原因吗 我做了
  • GPUImage iOS 中未显示文本叠加

    我正在尝试在视频上叠加一些文本 但到目前为止还没有取得任何成功 videoCamera GPUImageStillCamera alloc initWithSessionPreset AVCaptureSessionPreset640x48
  • 如何解决一般错误:2006 MySQL 服务器已消失

    我正在执行一项操作 将数百条记录插入 MySQL 数据库 插入 176 条记录后 我收到此错误 PDOException SQLSTATE HY000 一般错误 2006 MySQL 服务器已消失 我有什么办法可以解决这个问题吗 该过程是使
  • 如何在Java中对ArrayList进行排序[重复]

    这个问题在这里已经有答案了 我有一个名为 水果 的课程 我正在创建此类的列表 并将每种水果添加到列表中 我想根据水果名称的顺序对这个列表进行排序 public class Fruit private String fruitName pri
  • 在模型中的belongs_to中使用委托时出现“未初始化常量”错误

    我正在使用三个表的模型实现一个视图 其中一个是连接表 以下是表格 Recipe class Recipe lt ActiveRecord Base validates name presence gt true validates dire
  • 如何正确重复使用卷曲手柄

    我想正确地重用卷曲句柄 这样它就不会给我错误并正常运行 假设我有这段代码 CURL curl curl global init CURL GLOBAL ALL curl curl easy init curl easy setopt cur
  • 标准环境下的 GCP:MySQL 数据库连接被拒绝

    我的目标是让一个可用的 Python 2 7 项目 MySQL MS Word 文件 在 GCP 上工作 我意识到我需要 App Engine 应用程序将在其中运行 缩放等 Cloud SQL working as MySQL db For
  • 如何在使用继承时获取目标 C 中调用者的类名称?

    我有一个名为 BaseClass 的基类 许多类派生自基类 即子类 1 子类 2 和子类 3 interface BaseClass NSObject void configure end implementation void confi