【问题标题】:NSArray is empty when accesing in a method of the UITableViewController在 UITableViewController 的方法中访问时 NSArray 为空
【发布时间】:2012-03-29 16:41:17
【问题描述】:

我正在尝试做一个UITableView,但我完全被卡住了。我的问题是我正在尝试执行-tableView:cellForRowAtIndexPath: 方法,并且为了填充单元格,我有一个myObjectNSArray,这是由另一个类通过我的UITableViewController 中的设置器设置的。

我的问题是,当我要使用该数组时,它完全是空的,我不知道为什么——当我执行 setter 时,对象有数据,但是当我尝试在里面执行 getter 时上面的方法,它是空的。谁能告诉我为什么,我该如何解决?

我的二传手:

- (void)setmyObjectList:(NSArray *)list{          
      _myObjectList = list;
}

MyObjectList 在 .h 中声明:

@property (nonatomic, strong) NSArray *myObjectList;

这段代码在通过segue调用我的TableViewController的控制器中:

myTableViewController *myTVC = segue.destinationViewController;
[myTVC setPharmaciesList:self.list];

也许我没有解释清楚:我有一个 NSArray 类,其中包含我想在 TableView 中显示的对象。所以通过一个转场,我在 TableViewController 中设置了这个 NSArray。在设置器中,当我执行 NSLog 时,所有数据都在 NSTableViewController 的属性中的 NSArray 中,但是当我尝试在方法 tableView:cellForRowAtIndexPath: 中访问时,信息为空。为什么?我不知道。

谢谢:P

【问题讨论】:

  • 发布setter方法,以及调用setter的代码。
  • Stacky 我有点困惑,伙计。我真的不明白你在做什么。对于基本来说,NSLog NSArray 总是很方便,以查看数组中的真正内容。但首先你可以请多多指教谢谢:)
  • 一方面,setmyObjectList 中的“m”应该大写。
  • 我要解释一下 :) 我有一个 NSArray 类,其中包含我想在 TableView 中显示的对象。所以通过一个转场,我在 TableViewController 中设置了这个 NSArray。在设置器中,当我执行 NSLog 时,所有数据都在 NSTableViewController 的属性中的 NSArray 中,但是当我尝试在方法 tableView:cellForRowAtIndexPath: 中访问时,信息为空。为什么?我不知道。谢谢:P
  • 好的,伙计们,我修好了。这是因为我的 NSArray 包含的对象的属性很弱。所以我丢失了指向数据的指针。感谢您的关注和帮助:)

标签: objective-c ios cocoa-touch nsarray uitableview


【解决方案1】:

首先,不要覆盖 setter 方法,因为你在那里没有做任何特别的事情。其次,您在哪里创建稍后通过调用将属性设置为的数组 [myTVC setPharmaciesList:self.list];

即你在哪里填充 self.list?

【讨论】:

  • 我修好了。这是因为我声明了 NSArray 中对象的属性很弱。初学者的错误!!! :) 感谢您的帮助
猜你喜欢
  • 2012-01-12
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
  • 1970-01-01
  • 2020-11-01
  • 1970-01-01
  • 2019-06-17
  • 1970-01-01
相关资源
最近更新 更多