Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MVC na iOS - For-Mobile 2/2013

Tomas Jukin
February 18, 2013

MVC na iOS - For-Mobile 2/2013

Slidy z mé prezentace na téma "MVC na iOS - Možný pohled na modely s načítáním dat do UITableView na pozadí pomocí bloků", která proběhla na For-Mobile iOS v říjnu 2013 v prostorách InovaJet na Dejvické.

Více o události For-Mobile: http://srazy.info/for-mobile/3153

#forMobileCZ

Tomas Jukin

February 18, 2013
Tweet

More Decks by Tomas Jukin

Other Decks in Technology

Transcript

  1. MVC na iOS nejčastěji v praxi: MVC = Asynchronní načítání

    dat z internetu do UITableView pomocí bloků
  2. Jak na MC? view controller model owns load data app

    delegate kill zpět model manager proxy model
  3. #pragma mark - Setup Models - (void)setupModelsConfiguration { DEFINE_BLOCK_SELF; self.modelConfigurationRecipe

    = ^(JMTableViewModel *model, NSString *modelIdentifier) { NSString *defaultModelIdentifier = [blockSelf modelIdentifier]; if ([modelIdentifier isEqualToString:defaultModelIdentifier]) { #pragma mark - Cell Recipe // Cell Configuration (how to pass data from cellModel to cell) model.cellConfigurationRecipe = ^(UITableViewCell *c, JMTableViewCellModel *cM, NSIndexPath *iP) { // ... }; #pragma mark - Preload recipe model.preloadRecipe = ^(NSMutableArray *cache) { /* ... */ }; #pragma mark - Load recipe model.loadRecipe = ^(NSMutableArray *cache, NSArray *loadedObjects) { /* ... */ }; if ([model isKindOfClass:[JMRESTTableViewModel class]]) { JMRESTTableViewModel *restModel = ((JMRESTTableViewModel *)model); __block JMRESTTableViewModel *blockRestModel = restModel; #pragma mark - Parse recipe restModel.parseRecipe = ^(NSMutableArray *cache, id parsedJSONDataObject) { // ... // ...and pass it to loadRecipe block blockRestModel.loadRecipe(cache, section); }; } } else { NSLog(@"Error: ..."); } }; }
  4. Next ? Onscreen vs. Offscreen rendering v iOS KVC, KVO

    a Cocoa Bindings Document Oriented Programing v Cocoa Advanced Cora Data