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(またはどちらtableViewindexPathが であるためnil) です。

アップデート:

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 に答える