0

動的セルにロードする情報がそこにあることを正常に通知している nslog があります。ただし、viewDidLoad に犬の値があるにもかかわらず、name11Label の nslog が null を返すため、tableView がオブジェクト「犬」を含む配列「犬」をまったくロードしていないことがわかりました。tableView を開始するにはどうすればよいですか? (.hには、私の「tableView」用のioutletとプロパティ(念のため)があり、cell11.hのインポートと同様にあります)

.m ファイル

-(void)viewDidLoad{
...
     self.tableview.delegate = self;
...
}

    - (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section {
        if ( dogs != NULL ) {
            return [dogs count];
        }
        return 0;
    }

    - (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
       Cell11 *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell11"];

        if (cell == nil)
        {
            cell = [[[Cell11 alloc] initWithFrame:CGRectZero reuseIdentifier:@"Cell11"] autorelease];  //I know that this method is depreciated, but it is not the source of this problem
        }
        NSDictionary *itemAtIndex =(NSDictionary *)[dogs objectAtIndex:indexPath.row];
         cell.name11Label.text = [itemAtIndex objectForKey:@"dogs"];
         NSLog(@"dogs array = %@", dogs);   //returns correct information of the object dogs
         NSLog(@"%@", cell.name11Label.text);   //returning null even though "dogs" in viewDidLoad is showing a result;

         return cell;

    }

Cell11.h

#import <UIKit/UIKit.h>

@interface Cell11 : UITableViewCell
@property (nonatomic, strong) IBOutlet UILabel *name11Label;

@end

Cell11.m

#import "Cell11.h"

@implementation Cell11
@synthesize name11Label;

@end
4

3 に答える 3

0

変化する:

Cell11 *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell11"];

Cell11 *cell = [tv dequeueReusableCellWithIdentifier:@"Cell11"];

tableViewはおそらく正しく接続されていません。

nslogステートメントが呼び出されることはありません。上に移動します:

NSLog(@"%@", cell.name11Label);
return cell;

また、何も表示されないcgrectzeroでセルを初期化しています。期待する高さと幅があることを確認してください(例:CGRectMake(0.0f、0.0f、320.0f、50.0f))

それでもセルが表示されない場合は、配列ドッグが設定された後、テーブルビューでreloadDataを呼び出していますか?

于 2012-11-09T20:59:08.883 に答える
0

まず第一に、リターン後の NSLog は決して呼び出されません。

    NSLog(@"%@", cell.name11Label); 
    return cell;
}

2番目:インターフェイスビルダーのテーブルビューからクラスへのドラッグを制御します。そして、接続dataSourceが正しく接続されていることを確認してください。

于 2012-11-09T21:01:58.410 に答える
0

UITableViewDataSource プロトコル (上記のメソッド) を使用して、UITableView の「dataSource」プロパティをオブジェクトに割り当てましたか?

于 2012-11-09T20:53:34.090 に答える