【问题标题】:selectedRow return nullselectedRow 返回空值
【发布时间】:2013-01-06 13:11:20
【问题描述】:

我在窗口上有一个 NSTableView,数据是使用 NSMutableArray 填充的,没关系

选择一行后,当我签入代码时

[myTableView selectedRow];

[myTableView clickedRow];

都返回 null

谁能帮忙?

【问题讨论】:

  • NSLog(@"Table view: %@", myTableView); 说什么?
  • 显示为null,有什么出路?
  • myTableView 的声明是什么?听起来好像它不是您实际的表格视图对象的出口(因为您说您的显示没问题)。
  • 您确定是NULL 而不是nil?如果是NULL,则您的插座已初始化。
  • nilNULL 是同一个指针,只是类型不同。这两个值相等且无法区分; nil == NULL。因此,outlet 或任何其他包含对象指针的属性或 ivar 不可能是 NULL 而不是 nil。此外,已“初始化”的插座(我假设@11684 表示“连接在已加载的笔尖中”)不会是nil,因此也不会是NULL

标签: objective-c cocoa nstableview


【解决方案1】:

selectedRowclickedRow 各自返回一个 NSInteger,而不是一个对象。它们返回 0,即第一行的索引。

如果您将0 打印为对象(例如,使用NSLog(@"%@", [myTableView selectedRow])),它将打印为nil,因为nil 就是:0 作为对象指针。


当然,这首先假设myTableView 实际上是指表视图。如果myTableView 还没有指向表视图(即myTableView 变量本身包含nil),任何发给它的消息都会反过来返回0(如果你再一次看起来像nil把它当作一个对象)。

如果selectedRow 在第一行未被选中或没有行时返回0,或者clickedRow 在第一行未被点击时返回0,请确保myTableView 指向你期望它。

(我故意将问题及其解决方案的更具体解释留给你,Jaggu,因为你在 cmets 中说你已经找到了。)

【讨论】:

猜你喜欢
  • 2019-05-22
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
  • 2021-12-21
  • 2015-11-07
  • 2020-05-20
  • 2020-11-08
  • 2013-10-09
相关资源
最近更新 更多