【问题标题】:UITableView not able to fetch data from arrayUITableView 无法从数组中获取数据
【发布时间】:2012-01-04 13:50:28
【问题描述】:

我正在制作 iPad 应用程序,在从 URL 获取数据之后,我正在从 Url 获取数据,

我正在存储到数组中,

当我在这两个 TableView 方法中编写 NSLOG 时,

正常工作,

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

NSLOG(@"ARRAY=%@",arrayname);
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section     {
NSLOG(@"ARRAY=%@",arrayname);
}

但是当我在这个方法中写这个 NSLOG 时它会显示错误,

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSLOG(@"ARRAY=%@",arrayname);
    }

我也正确声明了 nsmutablearray....

它显示 EXC_BAD_ACCESS

为什么会有这样的想法?

【问题讨论】:

  • Xcode 应该对这些委托方法发出警告,因为您没有返回您应该返回的内容。但是您可能过度释放了数组。检查数组的生命周期,并使其在表格视图之前不会死亡。否则,您的表视图委托方法会尝试访问不再存在的对象。作为您问题的一部分,也许发布与您的数组相关的代码。
  • 你在哪里创建这个数组?

标签: iphone ios ipad uitableview nsmutablearray


【解决方案1】:

cellForRowAtIndexPath 方法必须返回单元格,否则你会看到你看到的错误。但是,如果上面的代码是“元代码”,并且您将 NSLog 放在适当的代码字符串之间,那么您可以遵循 Alex Reynolds 的建议。

检查您的阵列是否仍然存在。例如。您可以设置一个断点并检查程序是否因为转向“arrayname”而失败,如果是,请尝试在此时找到它可以在您的代码中释放的位置。另外,也许您只是错误地创建了数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    相关资源
    最近更新 更多