1

これは私のシナリオです:

800 の異なるブランドの 30000 製品を含む Sqlite データベース。

テーブル製品は次のようになります。

id | title | brand | other fields

製品例:

1221 | Product 1 | brand 1 | ...
1222 | Product 2 | brand 2 | ...
1223 | Product 3 | brand 2 | ...
1224 | Product 4 | brand 3 | ...
1225 | Product 5 | brand 3 | ...
1226 | Product 6 | brand 3 | ...

すべての製品が異なるセクションにある uiviewtable を作成する必要があります。セクションは異なるブランドの製品です。

このメソッドを実装する必要があります:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

この問題を解決するための私の考えは次のとおりです(疑似コードで記述):

NSArray * productList = [databaseManager getProductList]; //array with Product model objects
NSArray * brandsList = [databaseManager getBrandsList];


NSMutableDictionary * dictionaryProductBrands = [NSMutableDictionary dictionaryWithCapacity:bramdsList.count];


for (NSString *brand in brandsList) {
    NSMutableArray *arrayProductsPerBrands = [NSMutableArray array];

    for (Product *p in productList) {
        if ([p.brand isEqualToString:brand]) {

            [arrayProductsPerBrands addObject:p];
        } 
    }

    [dictionaryProductBrands setValue:arrayProductsPerBrands forKey:brand];

}

このソリューションのパフォーマンスは低くなります。

同じデータベースのセクションでテーブルビューを生成する方法を改善できますか?

4

0 に答える 0