有人可以解释一下 Objective-C 方法声明语法吗

2024-02-24

我正在阅读一本 iPhone 开发书*,但并不真正了解 Objective C。在大多数情况下,我能够理解正在发生的事情,但有一些方法声明(如下所示)让我遇到了一些麻烦解析。例如:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger) section {
  return [self.controllers count]; //controllers is an instance variable of type NSArray in this class
}

看起来这是一个名为 numberOfRowsInSection 的方法,它返回一个 NSInteger,并接受一个 NSInteger 作为参数,该参数在本地称为“section”。但我不明白对 tableView 的所有引用,也不明白为什么在方法中未使用它时需要一个参数。有人可以澄清这一点吗?谢谢。

*p。 258,开始 iPhone 3 开发,Mark 和 LaMarche 着,Apress 出版

Update:我找到了另一个更详细的 SO 线程:Objective C 中的方法语法 https://stackoverflow.com/questions/683211/method-syntax-in-objective-c


这是一个称为:

tableView:numberOfRowsInSection:

它需要两个参数:

  • a UITableView*
  • a NSInteger

该方法还采用隐式self参数,这是调用它的实例。正如 dreamlax 所指出的,它还需要一个隐式的_cmd,这是当前被调用的方法。

正如马克所说,如果您符合某个接口,那么不使用某些参数是很常见的。

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

有人可以解释一下 Objective-C 方法声明语法吗 的相关文章

随机推荐

  • Apache 将规则重写为lighttpd

    如何将此apache重写规则转换为lighttpd重写规则 Turn on URL rewriting RewriteEngine On Installation directory RewriteBase adpanel Protect
  • git:错误:您需要首先解析当前索引[重复]

    这个问题在这里已经有答案了 我试图将一个分支与我的分支合并 但出现了合并冲突 看到冲突后 我决定恢复我的分支 但我不确定如何执行此操作 因为我通常运行以下命令的方法似乎无法重置我的分支 git fetch origin git reset
  • $_SERVER['HTTP_HOST'] = 不是我的服务器的 IP

    我的php脚本有 SERVER HTTP HOST 等于一个与我的服务器ip无关的ip 有人有简单的解释吗 我认为某些机器人正在发送完全错误的主机标头 但我认为它无法连接到具有错误主机标头的服务器 thx HTTP HOST由客户提供 在H
  • 如何修复奇怪的 NSLayoutConstraint 错误,这些错误似乎不会影响自定义 UITableViewCell 中的布局

    每次我的自定义 UITableViewCells 由 tableView cellForRowAtIndexPath 绘制时 控制台都会吐出一堆 NSLayoutConstraint 不一致的信息 我理解其中大部分 Unable to si
  • MS Access 2010 导入规范位置?

    我有一个 MS Access 数据库 其中外部数据内的已保存导入具有导入作业 这些作业实际上将某些数据从不同位置导入到某些表中 我无法找出其中存在的每个作业实际导入了哪些表 因为为这些导入指定的名称不清楚且不相关 有什么方法可以找出导入实际
  • 在 alpine linux 上执行 mongodb 二进制文件

    我正在尝试在 Alpine 64 位 Linux 中为 docker 容器运行二进制 mongodb 但运行命令时 mongodb出现以下错误 bash 4 3 mongod bash mongod No such file or dire
  • 我应该使用 Jenkins 重量级执行器还是蝇量级执行器来发送通知?

    我的 Jenkins 管道中有几个步骤可以通知用户 在我的例子中使用 Slack 集成 在 a 中编写通知代码是一个好习惯吗node阻止使用重量级执行器还是将其留在外面以使用蝇量级执行器 根据文档 https github com jenk
  • Postgres:当出现错误时如何执行 Sum 查询?

    我正在使用 sum 函数来查找总数 但出现错误 这是查询 select sum col1 from table name where col2 abc Error function sum text does not exist Hint
  • 如何将 NSMutableArray 传递给另一个 ViewController 类

    我已经创建了 NSMutale 数组 英雄列表视图控制器 我想在另一个 viewController 中使用它地图教程视图控制器 我这样尝试过 在 HeroListViewController h 中 MapTutorialViewCont
  • 如何加快gradle中tomcat的启动过程?

    尝试使用此 gradle 代码片段启动 tomcat task startTomcat type Exec workingDir tomcat home bin commandLine cmd c startup bat 运行此任务后 to
  • Connect-mongo 会话不会自动删除

    我有一个使用 NodeJS Express MongoDB 和 connect mongo 的应用程序 我的问题是 会话过期时似乎不会自动从 MongoDB 中删除 因此数据库大小会不断增长 直到磁盘已满 connect mongo 的开发
  • 免注册 COM 互操作和相关程序集

    我们正在致力于将基于 MFC 的大型应用程序与少数托管 NET 加载项集成 与这些加载项的通信是通过 COM 完成的 从历史上看 我们只是使用注册表来使这些加载项 作为 COM 服务器 可供应用程序使用 但是 现在我们尝试使用免注册 COM
  • 如何在Python中使用wand优化图像大小

    我想使用魔杖调整和优化 png 和 jpg 图像大小 使用 PIL 如果我指定优化选项 我可以保存大约三分之一大小的相同图像 with open filename rb as f pimage PImage open f resized p
  • 表单认证滑动过期不起作用

    我有下面的代码 int intTimeout FormsAuthentication Timeout Hours 60 FormsAuthentication Timeout Minutes var authTicket new Forms
  • Terraform 错误:锁定状态时出错:获取状态锁时出错:发生 2 个错误:

    我尝试了 terraform 版本 v0 12 26 和 v0 13 3 两者都失败了 地形计划 获取状态锁 这可能需要一些时间 错误 锁定状态时出错 获取状态锁时出错 发生 2 个错误 ResourceNotFoundException
  • 初始化期间无法成功更新网络信息

    当我当天第一次启动该应用程序时 我总是遇到上述问题 当我第一次启动应用程序时 我会调用服务器来获取一些数据 然后播放动画视频 服务器调用位于与主 UI 线程不同的线程中 这与网络可达性或动画视频有关吗 我认为第一部分是主要问题 但不能一直重
  • 串口通讯显示

    我正在尝试通过串行端口通信进行聊天 这个聊天必须在 WPF 项目中有一个界面 我已经制作了界面和所有内容 我陷入了通过串口接收响应的困境 我已经尝试从串行端口添加 DataReceived 事件 但我担心我使用错误 因为我以前从未用 C 编
  • 已安装 Scipy 但 Tflearn 表示不支持 Scipy (win7)

    我正在使用 Windows 7 和 tflearn 版本 0 2 2 tensorflow 版本 0 12 1 python 3 5 并且我手动安装了 scipyhttp www lfd uci edu gohlke pythonlibs
  • 使用奏鸣曲管理包时已弃用的警告

    我正在使用 symfony2 7 和 sonata admin 学说 orm 捆绑包 我遵循了官方安装说明 除了一件事之外工作正常 每次请求时 我都会收到以下已废弃的警告 但我不知道如何消除它 Date 2016 10 18 08 58 2
  • 有人可以解释一下 Objective-C 方法声明语法吗

    我正在阅读一本 iPhone 开发书 但并不真正了解 Objective C 在大多数情况下 我能够理解正在发生的事情 但有一些方法声明 如下所示 让我遇到了一些麻烦解析 例如 NSInteger tableView UITableView