i’ve been into iphone programming for a couple of weeks now, and i’ve managed to create my first sqlite driven database.
for my first basic application, i have 2 tables (with a one-many relationship): brands, products
brands (code, brandname)
products (code, brandcode, productname, price, ...)
as for my sample data:
* brands:
1 apple
2 hp
*products:
1 1 Macbookpro
2 1 iphone
3 1 ipad2
4 2 hpnotebook
and i have 2 nib files: 1 with a tableviews showing the list of brands, and one having some outlets to show brand information and a tableview to show the corresponding products.
at first i’ve created 2 nsmutablearrays in the application delegate that i load during the didFinishLaunchingWithOptions.
however, there’s no way to know the data in the cell for the cellForRowAtIndexPath function when i’m loading the second tableview because my array of products has them all.. and i wouldn’t know what’s the second product that matches the criteria of brandcode=1
so i changed my brand class structure so that it contains an nsmutablearray of products.
and while loading products i add them each to the nsmutablearray of the parent brand.
performance-wise: was what i did correct? or are there any better ways to filter my products table.
i appreciate your help and time
cheers,
I would create two Classes (Brand and Product). The Brand class contains an MutArray with Product-instances. The ViewController or AppDelegate holds an MutArray of Brands. You have to pass information from the first TableView to the second tableview.
You have two possibilities:
1: On click on a brand
tableView:didSelectRowAtIndexPath:you get the selected obj using:product = [brands objectAtIndex:indexPath.row]and pass that product to the second viewController (eg via a newinitWithProduct:) which then present data of that product.2: On click on a brand: pass just the index/primaryKey of that brand and the second ViewController fetches all Products of that key from the db itself.