2012-01-30 2 views
0

で一つのセルを表しているアレイは、各タイムスタンプ(NSDate)を有する高さのエントリと重量のそのテーブルを言うことができます3つのオブジェクトは、私はNSMutableArrayのにSQLからデータをロードしていますのUITableView

ユーザが入り、身長と体重!

タイムスタンプでソートされたすべてのデータを取得するエントリを呼び出します。つまり、最新のものが最初です。 2012年1月30日 熱重量 - - 2012年1月30日

-height - 2011年12月30日 熱重量 - 2011年12月30日

これは私が得るため、

-heightです - 高さ - Novem 2011 熱重量 - Novem 2011

だから、私はmutableArrayで6つのオブジェクトを持っています。

テーブルビューのデータソースでは、3行しか必要ありません。それぞれがht/wtの組み合わせを有する。

だから何がdidSelectRowでこれらのコンボを取得し、再びcellforRow/numberOfRows /との私の機能だろう。

2 - また、上記の例ではザ各行iは3つのオブジェクトを必要とするだろう別の状況があった場合にどのような2つのオブジェクトを有しています。例えば 、収縮期血圧/拡張期血圧/パルス圧力、すべてのユーザによって入力され、ソートされたタイムスタンプで取得、この場合 各行は3つのオブジェクト表現、及び3行は、合計で9を有している必要があります..

...ちょうどそれについて移動する方法がわからない...私はエントリを呼び出す前に、各列で表されたオブジェクトの数が事前に定義されますので、私は、各セルが持ってしようとしているオブジェクトの数を知っているだろう

ご協力いただきありがとうございます!

は、[EDIT:]私はエントリのテーブルという、一つのことを片付けるよ - 独自のEntryobjectクラスを持つ各クラスには、「私はドンAN- -Value -timestamp -CategoryID

理由があります - 高さと重さが単一の行に返されない..カテゴリの組み合わせに依存BodyMassIndexカテゴリは上記のように2つのエントリのコンボを返しますが、だから、IDはここで再び計算しなければなりません。それはオブジェクト自体の目的を破ります。

  • 他の理由は私がそれを定義することができないので、エントリがSBP、Htまたはwtかどうかわかりません。 CategoryObjectが呼び出すものは、HtエントリーとWtエントリーの両方でCategoryIDが1であることを示します。SBP、DP、PPはCategoryIDが2になります。

この方法は、将来のために!それは私を連れて行っても!

Amm、mAtHを使用して溶液を得た!!これはメモリ上で超高価でしょうか?

fieldCountはプロパティの数です。 htおよびwt = 2!

limiterIndex=indexPath.row * fieldCount; 

    NSMutableArray *returnArray = [NSMutableArray new]; 

    for(int i=limiterIndex; i<(limiterIndex+fieldCount); i++){ 
    [returnArray addObject:[entriesArray objectAtIndex:i]; 
    } 
    [cell setDataFromArray:returnArray]; 
    [returnArray release]; 

イムこれが動作するかわからないが、少なくとも紙の上に!、すべての1つのエントリ・アレイ内のセル当たりのエントリを取得するように見えるん!

これについて調べるには高価な方法がありますか?

答えて

0

必要なすべてのデータを1つのセルに保持するカスタムオブジェクトを作成する必要があります。次にそれらを配列に入れ、それをデータソースとして使用します。

あなたのケースでは、幅と高さのデータをいくつかのmyObjectに入れてください。それらのmyObjectをmyObjectsArrayに入れ、それをそのデータソースとして使用します。

次に、自分のセルでmyObjectを抽出し、それらから高さと幅を抽出します。あなたは同様に他のデータのためにこれを行うことができます。もちろん、

あなたがcellForRowAtIndexPathでセルを埋めるために使用することができますこの:

uはheightForRowAtIndexpathにセルの寸法のために使用することができます。この。ちょうどあなたのテーブルのデータを含むカスタムオブジェクトを作成します。

要するに、これらのカスタムオブジェクトを作成し、それらをtableViewのデータソースとして使用することをお勧めします。 あなたはそれを理解するでしょう。 幸運。

+0

をねえ、はい、あなたの右に、両方のHT /重量を保持している理想的にはカスタムオブジェクトがあります使用すべきです。 これは、セル当たりのオブジェクトがちょうど1つまたは2つ(ht/wt)または3インチ(sBP/DBP/PP)である可能性がある他の多くの同様の状況の単なる例に過ぎません。 そして、 Value、TimeStamp、Categoryを持つオブジェクト内に存在します。このEntry Objectクラスに入っています。私はエントリとして取得するオブジェクトを定義する必要はありません、それは他のものについてのエントリかもしれません。 ht/wtだけではありません。ちょうどカテゴリーテーブルから何を呼び出すかによって異なります。 おそらく私は何とかIDを追加/分割する - > nsdict? – user134611

+0

私は質問をより鮮明に編集しました – user134611

+0

あなたはそのカスタムオブジェクトを使用すべきですが、何らかの形でそれを特定する必要もあります。オブジェクトのデータがどのようなものであれば、配列を使用してすべてのデータを入れ、その配列をデータソースに入れることができます。したがって、データソース内のオブジェクトを呼び出すと、その内容を表示するために使用できる配列が返されます。理解していますか?:) –

0

すべてのエントリのマスター配列を取得するモデルオブジェクトを作成します。

このモデルオブジェクトには、渡されたインデックスに基づいて正しいデータを返すメソッドもあります。

weightString = (NSString*)[self.dataModel getWeightAtIndex:indexPath.row]; 

次に、必要に応じてテキスト/フィールドビューをセルに追加することによって、セルを動的に作成します。

EDIT:

あなたはそれがのようなものを作成返すものを変えることができる方法たい場合:

weightString = (NSString*)[self.dataModel getDataAtIndex:indexPath.row forDataType:@"weight"]; 
+0

あなたは拡大してください、私はそれを得ています。しかし、私が作成したカスタムオブジェクトには、「getWeightAtIndex」などのメソッドがありますが、その項目が血圧に関する読書であればどうでしょうか?脈圧?高さ?それは何でもある可能性があります.. – user134611

+0

私はより明確になるように質問を編集.. – user134611

関連する問題