2011-02-02 4 views
0

パースされた要素を表示するために私のUITableViewを取得できません。UITableViewに解析された要素を取り込む方法は?

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
//elementsArray is a NSArray that is declared in .h 
elementsArray = [document selectElements: @"name"]; 
[myTable reloadData]; 
} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 1; 
} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 

    return [elementsArray count]; 

} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

    static NSString *MyIdentifier = @"MyIdentifier"; 

    UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 
    if (cell == nil){ 
     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease]; 
    } 

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

    return cell; 

} 


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 

} 

私のNSLogは、すべての要素を出力しますが、要素はのUITableViewで表示されません。ここに私のコードです。すべてが正常にフックアップされており、私はそれが動作しない理由を私は理解していないので、

NSArray * elementsArray = [NSArray arrayWithObjects:@"name1",@"name2",@"name3",nil]; 

のような静的にNSArrayを定義した場合、すべての代表者等は動作します。どんな助けもありがとう。ありがとう。

+0

ますあなたの "elementsArray"のためのプロパティを追加し、それをsyntesizeする必要があります、ちょうどそれを.hフォルダに宣言します。それは、私は "文書"が宣言されていないと言った。テーブルをリロードする前に、 "elementsArray"の内容をログに記録して、その内容を確認してください。 – Moshe

+0

プロパティを追加して合成しましたが、テーブルには追加できません。私がそれを記録するとき、テーブルに表示すべきすべてがそこにあります。また、配列をファイルに保存してファイルを読み込もうとしましたが、データは追加されません。たぶん私は配列や何かに間違って何かをしています。 idk – 0SX

+0

パースされていない要素を表示するときにtableviewが機能していることを確認しましたか?あなたの問題は解析から来ないかもしれません。 – CedricSoubrie

答えて

0

cellForRowAtIndexPathにブレークポイントを設定して、elementsArrayにまだ正しい要素があるかどうかを確認してください。あなたのコードからは、イベント間にどのように/それが保持されているかはすぐには分かりません。

0

あなたがここにretainへの呼び出しを逃しているかのようにそれが表示されます。selectElements:の実装を想定し

elementsArray = [document selectElements: @"name"]; 

は、アップル社のメモリ管理ガイドラインに準拠し、これはする必要があります:

elementsArray = [[document selectElements: @"name"] retain]; 
関連する問題