2011-07-14 11 views
0

私はすぐに助けが必要です! ):Iphone TableViewControllerロジックエラー!

私は実際にWebサービスでTableViewContollerを使用してデータソースを取得する方法について混乱しています。 ここで私はそれを行う方法です。

私はすべての変数を定義するModelクラスを持っています。例(Username、datetime) また、モデルクラスには、ASIHTTPRequestを使用してjsonデータソースを取得し、ModelクラスのNSMutableArrayを作成してオブジェクトを作成して格納するメソッドがあります。

次に、私のTableviewcontrollerで。 Viewdidloadメソッドでjsonを取得し、NSMutableArrayにアクセスしてテーブルセルを設定しようとするモデルクラスのメソッドをトリガーします。

しかし、jsonを正常に取得しても何も表示されません。 (私は、JSONが取り戻される前にテーブル自体がレンダリングされていると推測しています)。

私がやっていることにプログラミングの問題がいくつかありますか? ): アイデアをください!感謝!!!


EDIT !! (何が起こったか見つけた) 申し訳ありません!それは私の悪いです。 セクションの戻り値のメソッドでは、1ではなく0を返します。 これが表示されない理由は何ですか?これに2時間を費やしました。 T.T

ありがとう皆さん!私はあなたにも適切に配列のデータを使用してcell.textLabel.textプロパティを設定していると仮定してい[self.tableView reloadData];

答えて

0

(要求が完了した別名)満たされていNSMutableArrayたら、使用しています。

+0

はい、あります。 (: ありがとう!しかし、私はまだどこでreloadDataを配置するのかわからないという問題があります。要求が完了したメソッドは、ModelViewクラスにあり、tableViewにアクセスできません。 ): – Sydnal

+0

おっと私の間違い。非同期呼び出しが発生するコードをView Controllerに移動する必要があります。 'requestFinished'メソッド内で、' reloadData'メソッドを実行してください。 – Trevor

+0

私の "getAllFeeds"はView Controller以外の他のクラスにはありませんか?私はそれを試してみましょう!ありがとう。 (: – Sydnal

0

以下のメソッドを実装する必要があります。

- (void)requestFinished:(ASIHTTPRequest *)request 
{ 
    // Use when fetching text data 
    NSString *responseString = [request responseString]; 

    // Use when fetching binary data 
    NSData *responseData = [request responseData]; 
    [tableview reloadData]; 
} 

ウェブサービスからデータを取得し、そのリロードテーブルビューデータの配列を取得すると、 私はあなたの応答データについてあまりよく分かりませんので、私はあなたに前提を与えています。

このヘルプが必要です。

+0

ダイナミックではどうしたらいいですか?モデルはビューにアクセスできません。だから、私のモデル(データが取得されているかどうかを判断する)が右側にあるモデルには配置できません。 私の見解では、データを取得するかどうかを判断する方法や方法はありません。だから私はそれについてかなり混乱している。 ): ありがとうございました! – Sydnal

+0

私は自分の答えのチェックを編集してください。助けて欲しい。 – Deeps

+0

完了しました。 NSMutableArrayの中に私の応答を設定しました。 しかし、私のviewdidloadでは、私はデータを設定するメソッドをトリガします。 しかし、テーブルが最初にレンダリングされてからレスポンスが返され、ゼロ行が返されます。 ): – Sydnal

0

データが正常に取得されたら、モデルクラスからNSNotificationをポストすることを検討してください。このことができます

http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html

希望を:

[[NSNotificationCenter defaultCenter] postNotification:@"JSONDataDownloadSuccessful" object:nil]; 

は、あなたのUITableViewControllerであなたは、NSNotificationCenterクラス参照を見て、詳細についてはオブザーバー

[[NSNotificationCenter] defaultCenter] addObserver:self selector:@selector(JSONDataUpdated) name:@"JSONDataDownloadSuccessful" object:nil]; 

を追加することができます。

jamie

+0

彼は 'NSNotifications'を使うと、彼は彼の関数から値を返すことはできませんが、その値をモデルのプロパティとして保存する必要があります。この場合、オブザーバーを使用して表データをリロードすることができます。 – Trevor

関連する問題