Pozdrav korisniče,

Za pun pristup forumu odaberi jedno od ova dva dugmeta:

Login with Facebook Sign In with Google Sign In with OpenID Sign In with Twitter

In this Discussion

Tagged

Ovaj web site se ne trudi biti kompatibilnim sa Internet Explorer web preglednikom. Sve se u njemu vidi, ali za puni dojam preporučamo neki pošteni web preglednik poput Safarija, Firefoxa ili Google Chromea.

Top Posters

Članovi (6490)

  • fatossi
  • darmar80
  • Anita Pero
  • bionda
  • EdSe
  • mario_kevic
  • corpsebride
  • torik
  • aramic
  • croalex
  • cdnm
  • GemahenLahen
  • judgedredd
  • McLaren
  • nixaster
  • mafijaš
  • Igor_martic
  • Dalmit
  • olymp
  • flixoni

Tko je online (1)

Uključeno je povezivanje korisničkih računa na glavnom sajtu i forumu. Ukoliko vidite ovu poruku i ne možete se logirati na forum potrebno je za pristup koristiti podatke s kojima ste se registrirali na glavni site. Ukoliko se još niste registrirali na glavnom sajtu potrebno se ponovo registrirati, a sustav će vas pri prvom logiranju prijaviti na vaš forumski account. Probleme i dojmove možete napisati ovdje ili poslati mail na mac.korisnik@mackorisnik.com
ReloadData ne reagira
  • Pozdrav,

    Vec par dana razbijam glavu oko [self.tableView reloadData] koji kao da ne postoji. Ma sto pokusao, tabela je prazna. Sve to uzbudjenje desava se u Window-based aplikaciji sa Core Data (iphone). U delegat fajlu sam inicirao kontrollere:

      `KindViewController *kindViewController = [[KindViewController alloc] initWithStyle:UITableViewStylePlain];
    kindViewController.managedObjectContext = self.managedObjectContext;
    UINavigationController *navKindViewController = [[[UINavigationController alloc] 
                                                            initWithRootViewController:kindViewController] autorelease];
    [kindViewController release];
        [self.tabBarController setViewControllers:[NSArray arrayWithObjects:navKindViewController, nil]];
        [self.window addSubview:self.tabBarController.view];
        [self.window makeKeyAndVisible];`
    

    Zatim sam u RootViewController fajlu implementirao:

    - (id)initWithStyle:(UITableViewStyle)style { if ((self = [super initWithStyle:style])) { self.title = @"Product Category"; self.tabBarItem.image = [UIImage imageNamed:@"category.png"]; } return self; }

    Tu su svi standardni Core Data i TableViewController metode i to sve radi, ubacim podatke o kategoriji produkta u bazu i oni se lepo prikazu u tabeli. Sada po kategoriji produkta moram izlistati produkte (kad selektiram red u tabeli ta selekcija mora voditi u drugi prozor sa tabelom u kojoj su produkti koji pripadaju selektiranoj kategoriji). Napravio sam child TableViewController fajl(class) i dodelio ga:

    @class RootViewController;

    i inicirao sa:

    - (id)initWithRootController:(KindViewControlle *)aRootController category:(NSManagedObject *)aCategory { if ((self = [super init])) { self.rootController = aRootController; self.category = aCategory; } return self; }

    viewWillAppear ima dodano [self.tableView reloadData], numberOfSections sadrzi return 1, numberOfRows ima

    return [(NSSet *)[category valueForKey:@"products"] count]

    i produkte sortiram:

    - (NSArray *)sortProducts { NSSortDescriptor *sortNameDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES] autorelease]; NSArray *sortDescriptors = [NSArray arrayWithObjects:sortNameDescriptor, nil]; return [[(NSSet *)[category valueForKey:@"products"] allObjects] sortedArrayUsingDescriptors:sortDescriptors]; }

    a cellForRowAtIndexPath je standardno implementirana sa dodatim:

    NSManagedObject *product = [[self sortProducts] objectAtIndex:indexPath.row]

    Podaci o produktu ulaze u bazu, provjerio sam, tamo su ali nekako im se neda iz nje u tabelu. U bazi imam dva entiteta, Category i Product sa atributima koji su svi "optional" i "string", Category sadrzi property "products" koja je "one-to many", "optional" i Delete Rule "cascade" a Product ima property "category" koja je "to-one", "optional" i "Nullify" i "reverse" su jedna za drugu. Ma sta napravio tabela u mom ProductViewController prozory je prazna, xcode(4.0.2) ne javlja nikakva upozorenja niti greske, sve radi ali...u konzoli sam nekako uspio logirati ovo:

    tableView: <UITableView: 0x859600> dataSource: <ProductViewController: 0x1935f0> delegate: <ProductViewController: 0x1935f0>

    Za mene je prvi sumnjivac [self.tableView reloadData] u viewWillAppear, ali ni to nisam siguran. Ovo je za nekog ko vise zna od mene.

    Hvala unaprijed!!

    Post edited by feinstimmer at 2011-04-19 05:45:47
  • 7 Komentara sorted by
  • Znaci li ovo da TableView, dataSource i delegate nisu 0?

    tableView: <UITableView: 0x859600> dataSource: <ProductViewController: 0x1935f0> delegate: <ProductViewController: 0x1935f0>

    Post edited by feinstimmer at 2011-04-18 13:33:27
  • To samo znači da nisu nil, tj. alocirani su.

    Znači inicijalno imaš popunjeni UITableView s podacima, ali ih izgubiš nakon sorta i reloadData?

  • Probao sam sa NSLog u numberOfSectionsInTableView, numberOfRowsInSection i cellForRowAtIndexPath i nijedan se nije ispisao u console, znaci te metode nikada nisu pozvane?

  • Ocito, da.

    S obzirom da ti je projekt vjerojatno u ranoj fazi i da nema nista skakljivo unutra, bilo bi najpametnije da ga zazipas pa stavis negdje za skinut da pogledamo. Od ovog formatiranja koda na forumu mi oci krvare :/

  • OK, meilao kasno sinoc.

  • Nesto mislim, ima li CellIdentifier neke veze sa ovim problemom. Znam da kada se pravi custom cell onda identifier u IB mora odgovarati onom u cellForRowAtIndexPath. Ovdje je to sve programski, pa postoji li neko pravilo kako se imenuje?

  • Rijesio sam! U metodu koji mi salje podatke u bazu (insertProductWithCategory) falila mi je linija koda:

    [product setValue:category forKey:@"category"];

    gdje mi je "product" entity a "category" relationship.

    Hvala svima jos jednom.