0

これは私の初期化子のコードです:

if (self = [super init]) {
    self.title = @"Posts";
    self.variableHeightRows = YES;
    //XLog("");

    PostsDataSource *dataSource = [[[PostsDataSource alloc] init] autorelease];
    [dataSource.delegates addObject:self];
    [dataSource load:TTURLRequestCachePolicyMemory nextPage:NO];

    self.dataSource = dataSource;
}
return self;

データソースで TTURLRequest を実行していrequestDidFinishLoadます。呼び出されると、データソースがいくつかの項目でいっぱいになります。

これはすべて非常にうまく機能しますが、データソースが完了する前に初期化されて表示されるため、私の TTableViewController はこれらのファイルを表示しません。データソースをディスクにキャッシュするとすべてのアイテムが表示されるため、機能することはわかっています。

問題は、「requestDidFinishLoad」で TTableViewController にデータソース ファイルからデータを更新するように指示するにはどうすればよいかということです。

4

1 に答える 1

1

データソースは TTURLRequestModel にバインドされていますか? もしそうなら、あなたは次への電話を逃しているかもしれません:

[super requestDidFinishLoad:request];

ベース TTModel にバインドされている場合は、次の呼び出しが欠落している可能性があります。

[self didFinishLoad];

これらは requestDidFinishLoad: メソッドで発生するはずです。

更新 TTModel を使用していないことに気づきませんでした。あなたの requestDidFinishLoad 呼び出し:

[self dataSourceDidFinishLoad];

以下のコメントに基づいて再度更新して ください。あなたが読んでいたドキュメントまたはチュートリアルは古くなっているため、Three20 の新しいバージョンはこの方法では機能しなくなりました。http://three20.info/tutorials/githubにすばらしいチュートリアルがあり、正しい軌道に戻るはずです。

于 2010-02-24T22:37:04.373 に答える