1

我有一个奇怪的问题,当这样做时

NSLog(@"%@", [self.pat stringByAppendingPathComponent:[tableView cellForRowAtIndexPath:indexPath].textLabel.text]);

记录这个

/var/mobile/Applications/C6E7B405-5A68-4729-AFA9-910E17AFE825/Documents/Downloads

就是这样self.pat,没有附加字符串。这是我的tableView:cellForRow:atIndexPath:方法,并且在我执行此操作之前正在设置表格视图单元格的文本,并且显示正确。self.pat被声明为@property (strong, nonatomic) NSString *pat,我像这样设置单元格的文本

cell.textLabel.text = [files objectAtIndex:indexPath.row];

我设置self.pat和。viewDidAppear:animated:viewDidLoad:

4

2 回答 2

0

您需要做的第一件事是[tableView cellForRowAtIndexPath:indexPath]在您尝试在此处使用它的上下文中获取值。我的猜测是它是nil(因为要么 要么tableViewindexPathnil

更新:

正如 maddy 在评论中指出的那样,不能nil传递给这种情况,-stringByAppendingPathComponent:因为它会引发异常。而且我认为我们需要看看发生了什么-cellForRowAtIndexPath:才能真正了解这一点。

但是,实际上,这里更令人不安的是您正在从视图中获取数据。在 MVC 设计中,你所有的数据都应该来自模型。因此,实际上,您应该从用于填充单元格的同一模型中获取值,而不是使用单元格标签的内容生成此路径。

于 2013-04-15T01:00:29.050 回答
0

测试这个之后

[self.pat stringByAppendingPathComponent:[files objectAtIndex:indexPath.row];

它有效,所以我猜 textLabel 的设置速度不够快。

于 2013-04-15T01:03:20.323 回答