这个方法背后的代码在哪里
Posted
技术标签:
【中文标题】这个方法背后的代码在哪里【英文标题】:Where is the code behind this method 【发布时间】:2011-05-08 08:50:50 【问题描述】:是的,另一个新手问题!
我正在对我继承的应用程序进行一些维护工作,并试图找到此方法背后的代码。在我的 task.h 文件中,我有一个可选方法 doTask,它在协议 TaskDelegate 中声明。在我的 task.m 文件中,我找到了 doTask 的方法定义,但它引用了它的方法名称,所以我假设我会在另一个对象中找到另一个“更完整”的方法定义。错误的!我显然在这里遗漏了一些非常基本的东西。我无法在我的代码中找到任何其他对 doTask 的引用。
这是我的头文件 task.h 中的初始声明
@protocol TaskDelegate<NSObject>
@optional
- (void) doTask;
这是我的实现文件 task.m 中的方法定义
- (void) doTask
if ((self.delegate != nil) && ([self.delegate respondsToSelector:@selector(doTask)]))
[self.delegate doTask];
我假设我的方法定义首先确定我是否已经存在一个对象委托,然后查看它是否在其中定义了一个 doTask 方法;如果确实如此,那么它会告诉它在该委托上执行 doTask 方法。我说的对吗?
好吧,如果是这样,我的问题就变成了 doTask 背后的代码在哪里?我真的必须在这里错过一些基本的东西。感谢所有帮助!提前感谢您的帮助...
【问题讨论】:
【参考方案1】:正如 middaparka 所说,您的假设是正确的。至于查找 doTask 方法的函数代码,执行 Edit -> Find -> Find in Project 或 command + shift + F 并在搜索栏中输入“doTask”(或任何函数名称)并将其设置为“在项目中”,它将拉出所有显示函数文本的实例,包括函数定义。
【讨论】:
【参考方案2】:我假设我的方法定义是第一个 确定我是否有对象 委托已经存在,然后 看看它是否有一个 doTask 方法 在其中定义;如果确实如此,那么 它告诉它执行 doTask 该委托的方法。我说的对吗?
这正是正在发生的事情。
就您的“doTask 背后的代码在哪里”问题而言 - 它应该在任何委托中向相关类注册自身。 (这有点令人困惑,因为使用了相同的方法名称,但 [self.delegate doTask];
行背后的意图应该很清楚。)
【讨论】:
以上是关于这个方法背后的代码在哪里的主要内容,如果未能解决你的问题,请参考以下文章
将数据加载到网格的 Handsontable ASPX 代码背后的方法
如何从背后的 ASP.NET 代码访问 HTML 表单输入 [关闭]