From 5e77b3b38d7e30cc835daacbc5e1b4b6b0cf37ff Mon Sep 17 00:00:00 2001 From: Chimello44 Date: Tue, 10 Mar 2015 17:26:53 -0300 Subject: [PATCH 1/6] Bronze 1 --- iTunesSearch/Entidades/Filme.h | 1 + iTunesSearch/TableView.xib | 103 ++++++++++++++-- iTunesSearch/TableViewCell.h | 3 + iTunesSearch/TableViewCell.xib | 182 ++++++++++++++++++++++++++--- iTunesSearch/TableViewController.h | 9 +- iTunesSearch/TableViewController.m | 19 ++- iTunesSearch/iTunesManager.m | 1 + 7 files changed, 290 insertions(+), 28 deletions(-) diff --git a/iTunesSearch/Entidades/Filme.h b/iTunesSearch/Entidades/Filme.h index eb126dc..6702e34 100644 --- a/iTunesSearch/Entidades/Filme.h +++ b/iTunesSearch/Entidades/Filme.h @@ -16,5 +16,6 @@ @property (nonatomic, strong) NSString *duracao; @property (nonatomic, strong) NSString *genero; @property (nonatomic, strong) NSString *pais; +@property (nonatomic, strong) NSNumber *preco; @end diff --git a/iTunesSearch/TableView.xib b/iTunesSearch/TableView.xib index 55f128c..3997ea1 100644 --- a/iTunesSearch/TableView.xib +++ b/iTunesSearch/TableView.xib @@ -1,25 +1,106 @@ - + - - + + + - - + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iTunesSearch/TableViewCell.h b/iTunesSearch/TableViewCell.h index b630349..c2d9129 100644 --- a/iTunesSearch/TableViewCell.h +++ b/iTunesSearch/TableViewCell.h @@ -12,6 +12,9 @@ @property (weak, nonatomic) IBOutlet UILabel *nome; @property (weak, nonatomic) IBOutlet UILabel *tipo; +@property (strong, nonatomic) IBOutlet UILabel *genero; +@property (strong, nonatomic) IBOutlet UILabel *preco; + @end diff --git a/iTunesSearch/TableViewCell.xib b/iTunesSearch/TableViewCell.xib index bf8bd3f..ae54ba7 100644 --- a/iTunesSearch/TableViewCell.xib +++ b/iTunesSearch/TableViewCell.xib @@ -1,46 +1,202 @@ - + + - - + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/iTunesSearch/TableViewController.h b/iTunesSearch/TableViewController.h index 0cbb5c4..88fa7be 100644 --- a/iTunesSearch/TableViewController.h +++ b/iTunesSearch/TableViewController.h @@ -10,8 +10,15 @@ @interface TableViewController : UIViewController - @property (strong, nonatomic) IBOutlet UITableView *tableview; +@property (strong, nonatomic) IBOutlet UIView *view; +@property (strong, nonatomic) IBOutlet UITextField *searchText; + +- (IBAction)searchButton:(id)sender; + + + + @end diff --git a/iTunesSearch/TableViewController.m b/iTunesSearch/TableViewController.m index f689980..daba753 100644 --- a/iTunesSearch/TableViewController.m +++ b/iTunesSearch/TableViewController.m @@ -17,10 +17,14 @@ @interface TableViewController () { @end + + @implementation TableViewController + + - (void)viewDidLoad { [super viewDidLoad]; @@ -33,7 +37,6 @@ - (void)viewDidLoad { #warning Necessario para que a table view tenha um espaco em relacao ao topo, pois caso contrario o texto ficara atras da barra superior self.tableview.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableview.bounds.size.width, 15.f)]; } - - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. @@ -56,13 +59,23 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS [celula.nome setText:filme.nome]; [celula.tipo setText:@"Filme"]; - + [celula.genero setText:filme.genero]; + [celula.preco setText:[NSString stringWithFormat:@"Preço: %@", filme.preco]]; return celula; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - return 70; + return 100; } +- (IBAction)searchButton:(id)sender { + iTunesManager *itunes = [iTunesManager sharedInstance]; + midias = [itunes buscarMidias: _searchText.text]; + self.tableview.reloadData; +} + +-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ + [_searchText resignFirstResponder]; +} @end diff --git a/iTunesSearch/iTunesManager.m b/iTunesSearch/iTunesManager.m index e2babda..c852a1c 100644 --- a/iTunesSearch/iTunesManager.m +++ b/iTunesSearch/iTunesManager.m @@ -57,6 +57,7 @@ - (NSArray *)buscarMidias:(NSString *)termo { [filme setDuracao:[item objectForKey:@"trackTimeMillis"]]; [filme setGenero:[item objectForKey:@"primaryGenreName"]]; [filme setPais:[item objectForKey:@"country"]]; + [filme setPreco:[item objectForKey:@"trackPrice"]]; [filmes addObject:filme]; } From 33d1d873bbdd03040634743963a3fd95986883de Mon Sep 17 00:00:00 2001 From: Chimello44 Date: Tue, 10 Mar 2015 17:36:53 -0300 Subject: [PATCH 2/6] detalhes conrrigidos --- iTunesSearch/TableViewController.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/iTunesSearch/TableViewController.m b/iTunesSearch/TableViewController.m index daba753..79b8e6a 100644 --- a/iTunesSearch/TableViewController.m +++ b/iTunesSearch/TableViewController.m @@ -60,7 +60,7 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS [celula.nome setText:filme.nome]; [celula.tipo setText:@"Filme"]; [celula.genero setText:filme.genero]; - [celula.preco setText:[NSString stringWithFormat:@"Preço: %@", filme.preco]]; + [celula.preco setText:[NSString stringWithFormat:@"%@", filme.preco]]; return celula; } @@ -73,6 +73,7 @@ - (IBAction)searchButton:(id)sender { iTunesManager *itunes = [iTunesManager sharedInstance]; midias = [itunes buscarMidias: _searchText.text]; self.tableview.reloadData; + [_searchText resignFirstResponder]; } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ From 12b35bab8594673da3763b3c578db5507c40b7f4 Mon Sep 17 00:00:00 2001 From: Chimello44 Date: Wed, 11 Mar 2015 17:36:02 -0300 Subject: [PATCH 3/6] NAO FUNCIONA --- iTunesSearch.xcodeproj/project.pbxproj | 18 +++++++ iTunesSearch/Ebook.h | 19 +++++++ iTunesSearch/Ebook.m | 14 +++++ iTunesSearch/Musica.h | 21 ++++++++ iTunesSearch/Musica.m | 16 ++++++ iTunesSearch/Podcast.h | 20 ++++++++ iTunesSearch/Podcast.m | 15 ++++++ iTunesSearch/TableView.xib | 14 ++--- iTunesSearch/TableViewCell.xib | 17 +++--- iTunesSearch/TableViewController.m | 71 ++++++++++++++++++++++---- iTunesSearch/iTunesManager.m | 54 ++++++++++++++++++-- 11 files changed, 252 insertions(+), 27 deletions(-) create mode 100644 iTunesSearch/Ebook.h create mode 100644 iTunesSearch/Ebook.m create mode 100644 iTunesSearch/Musica.h create mode 100644 iTunesSearch/Musica.m create mode 100644 iTunesSearch/Podcast.h create mode 100644 iTunesSearch/Podcast.m diff --git a/iTunesSearch.xcodeproj/project.pbxproj b/iTunesSearch.xcodeproj/project.pbxproj index 79e06d7..6f89b9f 100644 --- a/iTunesSearch.xcodeproj/project.pbxproj +++ b/iTunesSearch.xcodeproj/project.pbxproj @@ -17,6 +17,9 @@ 92C21CE11AAE76930052ABE6 /* TableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CDF1AAE76930052ABE6 /* TableViewCell.m */; }; 92C21CE21AAE76930052ABE6 /* TableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 92C21CE01AAE76930052ABE6 /* TableViewCell.xib */; }; 92C21CE81AAE858E0052ABE6 /* Filme.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CE71AAE858E0052ABE6 /* Filme.m */; }; + E8D671CF1AB0C70F0077A631 /* Podcast.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D671CE1AB0C70F0077A631 /* Podcast.m */; }; + E8D671D21AB0C71C0077A631 /* Ebook.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D671D11AB0C71C0077A631 /* Ebook.m */; }; + E8D671D51AB0C9D60077A631 /* Musica.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D671D41AB0C9D60077A631 /* Musica.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -49,6 +52,12 @@ 92C21CE01AAE76930052ABE6 /* TableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TableViewCell.xib; sourceTree = ""; }; 92C21CE61AAE858E0052ABE6 /* Filme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Filme.h; path = Entidades/Filme.h; sourceTree = ""; }; 92C21CE71AAE858E0052ABE6 /* Filme.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Filme.m; path = Entidades/Filme.m; sourceTree = ""; }; + E8D671CD1AB0C70F0077A631 /* Podcast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Podcast.h; sourceTree = ""; }; + E8D671CE1AB0C70F0077A631 /* Podcast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Podcast.m; sourceTree = ""; }; + E8D671D01AB0C71C0077A631 /* Ebook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Ebook.h; sourceTree = ""; }; + E8D671D11AB0C71C0077A631 /* Ebook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Ebook.m; sourceTree = ""; }; + E8D671D31AB0C9D60077A631 /* Musica.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Musica.h; sourceTree = ""; }; + E8D671D41AB0C9D60077A631 /* Musica.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Musica.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -145,7 +154,13 @@ isa = PBXGroup; children = ( 92C21CE61AAE858E0052ABE6 /* Filme.h */, + E8D671D31AB0C9D60077A631 /* Musica.h */, + E8D671D41AB0C9D60077A631 /* Musica.m */, 92C21CE71AAE858E0052ABE6 /* Filme.m */, + E8D671CD1AB0C70F0077A631 /* Podcast.h */, + E8D671CE1AB0C70F0077A631 /* Podcast.m */, + E8D671D01AB0C71C0077A631 /* Ebook.h */, + E8D671D11AB0C71C0077A631 /* Ebook.m */, ); name = Entidades; sourceTree = ""; @@ -250,11 +265,14 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + E8D671D21AB0C71C0077A631 /* Ebook.m in Sources */, 92C21CBC1AAE757A0052ABE6 /* TableViewController.m in Sources */, + E8D671CF1AB0C70F0077A631 /* Podcast.m in Sources */, 92C21CDB1AAE75B30052ABE6 /* iTunesManager.m in Sources */, 92C21CB91AAE757A0052ABE6 /* AppDelegate.m in Sources */, 92C21CE81AAE858E0052ABE6 /* Filme.m in Sources */, 92C21CE11AAE76930052ABE6 /* TableViewCell.m in Sources */, + E8D671D51AB0C9D60077A631 /* Musica.m in Sources */, 92C21CB61AAE757A0052ABE6 /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/iTunesSearch/Ebook.h b/iTunesSearch/Ebook.h new file mode 100644 index 0000000..f95786a --- /dev/null +++ b/iTunesSearch/Ebook.h @@ -0,0 +1,19 @@ +// +// Ebook.h +// iTunesSearch +// +// Created by Hugo Luiz Chimello on 3/11/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import + +@interface Ebook : NSObject +@property (nonatomic, strong) NSString *nome; +@property (nonatomic, strong) NSString *trackId; +@property (nonatomic, strong) NSString *artista; +@property (nonatomic, strong) NSString *duracao; +@property (nonatomic, strong) NSString *genero; +@property (nonatomic, strong) NSString *pais; +@property (nonatomic, strong) NSNumber *preco; +@end diff --git a/iTunesSearch/Ebook.m b/iTunesSearch/Ebook.m new file mode 100644 index 0000000..eef5e02 --- /dev/null +++ b/iTunesSearch/Ebook.m @@ -0,0 +1,14 @@ +// +// Ebook.m +// iTunesSearch +// +// Created by Hugo Luiz Chimello on 3/11/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import "Ebook.h" + + +@implementation Ebook + +@end diff --git a/iTunesSearch/Musica.h b/iTunesSearch/Musica.h new file mode 100644 index 0000000..7d8050f --- /dev/null +++ b/iTunesSearch/Musica.h @@ -0,0 +1,21 @@ +// +// Musica.h +// iTunesSearch +// +// Created by Hugo Luiz Chimello on 3/11/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import + +@interface Musica : NSObject + +@property (nonatomic, strong) NSString *nome; +@property (nonatomic, strong) NSString *trackId; +@property (nonatomic, strong) NSString *artista; +@property (nonatomic, strong) NSString *duracao; +@property (nonatomic, strong) NSString *genero; +@property (nonatomic, strong) NSString *pais; +@property (nonatomic, strong) NSNumber *preco; + +@end diff --git a/iTunesSearch/Musica.m b/iTunesSearch/Musica.m new file mode 100644 index 0000000..fac5293 --- /dev/null +++ b/iTunesSearch/Musica.m @@ -0,0 +1,16 @@ +// +// Musica.m +// iTunesSearch +// +// Created by Hugo Luiz Chimello on 3/11/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import "Musica.h" + + + +@implementation Musica + + +@end diff --git a/iTunesSearch/Podcast.h b/iTunesSearch/Podcast.h new file mode 100644 index 0000000..b642542 --- /dev/null +++ b/iTunesSearch/Podcast.h @@ -0,0 +1,20 @@ +// +// Podcast.h +// iTunesSearch +// +// Created by Hugo Luiz Chimello on 3/11/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import + +@interface Podcast : NSObject + +@property (nonatomic, strong) NSString *nome; +@property (nonatomic, strong) NSString *trackId; +@property (nonatomic, strong) NSString *artista; +@property (nonatomic, strong) NSString *duracao; +@property (nonatomic, strong) NSString *genero; +@property (nonatomic, strong) NSString *pais; +@property (nonatomic, strong) NSNumber *preco; +@end diff --git a/iTunesSearch/Podcast.m b/iTunesSearch/Podcast.m new file mode 100644 index 0000000..db1512f --- /dev/null +++ b/iTunesSearch/Podcast.m @@ -0,0 +1,15 @@ +// +// Podcast.m +// iTunesSearch +// +// Created by Hugo Luiz Chimello on 3/11/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import "Podcast.h" + + +@implementation Podcast + + +@end diff --git a/iTunesSearch/TableView.xib b/iTunesSearch/TableView.xib index 3997ea1..11991ef 100644 --- a/iTunesSearch/TableView.xib +++ b/iTunesSearch/TableView.xib @@ -13,7 +13,7 @@ - + @@ -71,15 +71,15 @@ + + + - - - @@ -89,15 +89,15 @@ + + + - - - diff --git a/iTunesSearch/TableViewCell.xib b/iTunesSearch/TableViewCell.xib index ae54ba7..9987f24 100644 --- a/iTunesSearch/TableViewCell.xib +++ b/iTunesSearch/TableViewCell.xib @@ -3,6 +3,7 @@ + @@ -132,6 +133,10 @@ + + + + @@ -142,10 +147,6 @@ - - - - @@ -156,6 +157,10 @@ + + + + @@ -177,10 +182,6 @@ - - - - diff --git a/iTunesSearch/TableViewController.m b/iTunesSearch/TableViewController.m index 79b8e6a..4d2c881 100644 --- a/iTunesSearch/TableViewController.m +++ b/iTunesSearch/TableViewController.m @@ -9,10 +9,14 @@ #import "TableViewController.h" #import "TableViewCell.h" #import "iTunesManager.h" -#import "Entidades/Filme.h" +#import "Filme.h" +#import "Musica.h" +#import "Podcast.h" +#import "Ebook.h" @interface TableViewController () { NSArray *midias; + NSArray *mid; } @end @@ -32,7 +36,6 @@ - (void)viewDidLoad { [self.tableview registerNib:nib forCellReuseIdentifier:@"celulaPadrao"]; iTunesManager *itunes = [iTunesManager sharedInstance]; - midias = [itunes buscarMidias:@"Apple"]; #warning Necessario para que a table view tenha um espaco em relacao ao topo, pois caso contrario o texto ficara atras da barra superior self.tableview.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableview.bounds.size.width, 15.f)]; @@ -45,33 +48,83 @@ - (void)didReceiveMemoryWarning { #pragma mark - Metodos do UITableViewDataSource -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; + return 4; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [midias count]; } +-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ + switch(section){ +case 0: return @"Filme"; +case 1: return @"Musica"; +case 2: return @"Podcast"; +case 3: return @"Ebook"; + } + return @"oi"; +} + -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { TableViewCell *celula = [self.tableview dequeueReusableCellWithIdentifier:@"celulaPadrao"]; - Filme *filme = [midias objectAtIndex:indexPath.row]; + + mid=[[NSArray alloc] initWithArray:[midias objectAtIndex:indexPath.section]]; + + Filme *filme; + Musica *musica; + Podcast *podcast; + Ebook *ebook; + + long row=[indexPath row]; + + switch (indexPath.section){ - [celula.nome setText:filme.nome]; - [celula.tipo setText:@"Filme"]; - [celula.genero setText:filme.genero]; - [celula.preco setText:[NSString stringWithFormat:@"%@", filme.preco]]; + case 0: + filme=[mid objectAtIndex:indexPath.row]; + [celula.nome setText:filme.nome]; + [celula.tipo setText:@"Filme"]; + [celula.genero setText:filme.genero]; + [celula.preco setText:[NSString stringWithFormat:@"%@", filme.preco]]; + break; + + case 1: + musica=[mid objectAtIndex:row]; + [celula.nome setText:musica.nome]; + [celula.tipo setText:@"Musica"]; + [celula.genero setText:musica.genero]; + [celula.preco setText:[NSString stringWithFormat:@"%@", musica.preco]]; + break; + case 2: + podcast=[mid objectAtIndex:row]; + [celula.nome setText:podcast.nome]; + [celula.tipo setText:@"podcast"]; + [celula.genero setText:podcast.genero]; + [celula.preco setText:[NSString stringWithFormat:@"%@", podcast.preco]]; + break; + + case 3: + ebook=[mid objectAtIndex:row]; + [celula.nome setText:ebook.nome]; + [celula.tipo setText:@"ebook"]; + [celula.genero setText:ebook.genero]; + [celula.preco setText:[NSString stringWithFormat:@"%@", ebook.preco]]; + break; + default: + break; + } return celula; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - return 100; + return 120; } - (IBAction)searchButton:(id)sender { iTunesManager *itunes = [iTunesManager sharedInstance]; midias = [itunes buscarMidias: _searchText.text]; + NSLog(@"%lu",[midias[0] count]); self.tableview.reloadData; [_searchText resignFirstResponder]; } diff --git a/iTunesSearch/iTunesManager.m b/iTunesSearch/iTunesManager.m index c852a1c..e8079cb 100644 --- a/iTunesSearch/iTunesManager.m +++ b/iTunesSearch/iTunesManager.m @@ -7,7 +7,10 @@ // #import "iTunesManager.h" -#import "Entidades/Filme.h" +#import "Filme.h" +#import "Musica.h" +#import "Podcast.h" +#import "Ebook.h" @implementation iTunesManager @@ -34,7 +37,7 @@ - (NSArray *)buscarMidias:(NSString *)termo { termo = @""; } - NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/search?term=%@&media=movie", termo]; + NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/search?term=%@&media=all", termo]; NSData *jsonData = [NSData dataWithContentsOfURL: [NSURL URLWithString:url]]; NSError *error; @@ -48,8 +51,20 @@ - (NSArray *)buscarMidias:(NSString *)termo { NSArray *resultados = [resultado objectForKey:@"results"]; NSMutableArray *filmes = [[NSMutableArray alloc] init]; + NSMutableArray *musicas =[[NSMutableArray alloc] init]; + NSMutableArray *podcasts= [[NSMutableArray alloc] init]; + NSMutableArray *ebooks= [[NSMutableArray alloc] init]; + + NSString *type; + + Filme *filmao= [[Filme alloc]init]; + filmao.nome=@"grande filme"; + [filmes addObject:filmao]; for (NSDictionary *item in resultados) { + + type=[item objectForKey:@"kind"]; + if([type isEqualToString:@"featured-movie"]){ Filme *filme = [[Filme alloc] init]; [filme setNome:[item objectForKey:@"trackName"]]; [filme setTrackId:[item objectForKey:@"trackId"]]; @@ -60,8 +75,41 @@ - (NSArray *)buscarMidias:(NSString *)termo { [filme setPreco:[item objectForKey:@"trackPrice"]]; [filmes addObject:filme]; } + else if([type isEqualToString:@"song"]){ + Musica *musica = [[Musica alloc] init]; + [musica setNome:[item objectForKey:@"trackName"]]; + [musica setTrackId:[item objectForKey:@"trackId"]]; + [musica setArtista:[item objectForKey:@"artistName"]]; + [musica setDuracao:[item objectForKey:@"trackTimeMillis"]]; + [musica setGenero:[item objectForKey:@"primaryGenreName"]]; + [musica setPais:[item objectForKey:@"country"]]; + [musica setPreco:[item objectForKey:@"trackPrice"]]; + + [musicas addObject:musica]; + + } + else if([type isEqualToString:@"podcast"]){ + Podcast *podcast = [[Podcast alloc] init]; + [podcast setNome:[item objectForKey:@"trackName"]]; + [podcast setTrackId:[item objectForKey:@"trackId"]]; + [podcast setArtista:[item objectForKey:@"artistName"]]; + [podcast setPreco:[item objectForKey:@"trackPrice"]]; + [podcasts addObject:podcast]; + + } + else if([type isEqualToString:@"ebook"]){ + Ebook *ebook = [[Ebook alloc] init]; + [ebook setNome:[item objectForKey:@"trackName"]]; + [ebook setTrackId:[item objectForKey:@"trackId"]]; + [ebook setArtista:[item objectForKey:@"artistName"]]; + [ebook setPreco:[item objectForKey:@"trackPrice"]]; + [ebooks addObject: ebook]; + } + + } + NSArray *mid = [[NSArray alloc]initWithObjects:filmes,musicas,podcasts,ebooks, nil]; - return filmes; + return mid; } From ff8c5eb28b0c02b482423a5971c1f4474e118b2f Mon Sep 17 00:00:00 2001 From: Chimello44 Date: Fri, 13 Mar 2015 15:21:27 -0300 Subject: [PATCH 4/6] bronze 1,2,3 prata 1,2,3 --- iTunesSearch.xcodeproj/project.pbxproj | 45 ++++- iTunesSearch/AppDelegate.m | 3 +- iTunesSearch/{ => Base.lproj}/TableView.xib | 81 ++++----- iTunesSearch/DetailViewController.h | 20 +++ iTunesSearch/DetailViewController.m | 37 +++++ iTunesSearch/DetailViewController.xib | 96 +++++++++++ iTunesSearch/Ebook.h | 2 + iTunesSearch/Entidades/Filme.h | 1 + iTunesSearch/Musica.h | 2 +- iTunesSearch/Podcast.h | 2 + iTunesSearch/TableViewCell.h | 2 + iTunesSearch/TableViewCell.xib | 172 +++++++++++--------- iTunesSearch/TableViewController.h | 5 +- iTunesSearch/TableViewController.m | 39 +++-- iTunesSearch/en.lproj/TableView.strings | 3 + iTunesSearch/fr.lproj/TableView.strings | 3 + iTunesSearch/iTunesManager.m | 25 +-- iTunesSearch/pt.lproj/TableView.strings | 3 + 18 files changed, 393 insertions(+), 148 deletions(-) rename iTunesSearch/{ => Base.lproj}/TableView.xib (74%) create mode 100644 iTunesSearch/DetailViewController.h create mode 100644 iTunesSearch/DetailViewController.m create mode 100644 iTunesSearch/DetailViewController.xib create mode 100644 iTunesSearch/en.lproj/TableView.strings create mode 100644 iTunesSearch/fr.lproj/TableView.strings create mode 100644 iTunesSearch/pt.lproj/TableView.strings diff --git a/iTunesSearch.xcodeproj/project.pbxproj b/iTunesSearch.xcodeproj/project.pbxproj index 6f89b9f..4a3d927 100644 --- a/iTunesSearch.xcodeproj/project.pbxproj +++ b/iTunesSearch.xcodeproj/project.pbxproj @@ -13,13 +13,15 @@ 92C21CC11AAE757A0052ABE6 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 92C21CC01AAE757A0052ABE6 /* Images.xcassets */; }; 92C21CD01AAE757A0052ABE6 /* iTunesSearchTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CCF1AAE757A0052ABE6 /* iTunesSearchTests.m */; }; 92C21CDB1AAE75B30052ABE6 /* iTunesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CDA1AAE75B30052ABE6 /* iTunesManager.m */; }; - 92C21CDD1AAE75DC0052ABE6 /* TableView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 92C21CDC1AAE75DC0052ABE6 /* TableView.xib */; }; 92C21CE11AAE76930052ABE6 /* TableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CDF1AAE76930052ABE6 /* TableViewCell.m */; }; 92C21CE21AAE76930052ABE6 /* TableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 92C21CE01AAE76930052ABE6 /* TableViewCell.xib */; }; 92C21CE81AAE858E0052ABE6 /* Filme.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CE71AAE858E0052ABE6 /* Filme.m */; }; E8D671CF1AB0C70F0077A631 /* Podcast.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D671CE1AB0C70F0077A631 /* Podcast.m */; }; E8D671D21AB0C71C0077A631 /* Ebook.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D671D11AB0C71C0077A631 /* Ebook.m */; }; E8D671D51AB0C9D60077A631 /* Musica.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D671D41AB0C9D60077A631 /* Musica.m */; }; + E8EB46A61AB3508C003F5198 /* TableView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E8EB46A81AB3508C003F5198 /* TableView.xib */; }; + E8EB46B11AB35599003F5198 /* DetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EB46AF1AB35599003F5198 /* DetailViewController.m */; }; + E8EB46B21AB35599003F5198 /* DetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E8EB46B01AB35599003F5198 /* DetailViewController.xib */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -46,7 +48,6 @@ 92C21CCF1AAE757A0052ABE6 /* iTunesSearchTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iTunesSearchTests.m; sourceTree = ""; }; 92C21CD91AAE75B30052ABE6 /* iTunesManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iTunesManager.h; sourceTree = ""; }; 92C21CDA1AAE75B30052ABE6 /* iTunesManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iTunesManager.m; sourceTree = ""; }; - 92C21CDC1AAE75DC0052ABE6 /* TableView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TableView.xib; sourceTree = ""; }; 92C21CDE1AAE76930052ABE6 /* TableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewCell.h; sourceTree = ""; }; 92C21CDF1AAE76930052ABE6 /* TableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableViewCell.m; sourceTree = ""; }; 92C21CE01AAE76930052ABE6 /* TableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TableViewCell.xib; sourceTree = ""; }; @@ -58,6 +59,13 @@ E8D671D11AB0C71C0077A631 /* Ebook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Ebook.m; sourceTree = ""; }; E8D671D31AB0C9D60077A631 /* Musica.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Musica.h; sourceTree = ""; }; E8D671D41AB0C9D60077A631 /* Musica.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Musica.m; sourceTree = ""; }; + E8EB46A71AB3508C003F5198 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/TableView.xib; sourceTree = ""; }; + E8EB46AA1AB35090003F5198 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/TableView.strings; sourceTree = ""; }; + E8EB46AB1AB3509F003F5198 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/TableView.strings; sourceTree = ""; }; + E8EB46AC1AB350A8003F5198 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/TableView.strings; sourceTree = ""; }; + E8EB46AE1AB35599003F5198 /* DetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailViewController.h; sourceTree = ""; }; + E8EB46AF1AB35599003F5198 /* DetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailViewController.m; sourceTree = ""; }; + E8EB46B01AB35599003F5198 /* DetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DetailViewController.xib; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -99,13 +107,14 @@ 92C21CB21AAE757A0052ABE6 /* iTunesSearch */ = { isa = PBXGroup; children = ( + E8EB46AD1AB3557C003F5198 /* Details */, 92C21CE31AAE76AA0052ABE6 /* Celulas */, 92C21CE91AAE859A0052ABE6 /* Entidades */, 92C21CB71AAE757A0052ABE6 /* AppDelegate.h */, 92C21CB81AAE757A0052ABE6 /* AppDelegate.m */, 92C21CBA1AAE757A0052ABE6 /* TableViewController.h */, 92C21CBB1AAE757A0052ABE6 /* TableViewController.m */, - 92C21CDC1AAE75DC0052ABE6 /* TableView.xib */, + E8EB46A81AB3508C003F5198 /* TableView.xib */, 92C21CD91AAE75B30052ABE6 /* iTunesManager.h */, 92C21CDA1AAE75B30052ABE6 /* iTunesManager.m */, 92C21CC01AAE757A0052ABE6 /* Images.xcassets */, @@ -154,9 +163,9 @@ isa = PBXGroup; children = ( 92C21CE61AAE858E0052ABE6 /* Filme.h */, + 92C21CE71AAE858E0052ABE6 /* Filme.m */, E8D671D31AB0C9D60077A631 /* Musica.h */, E8D671D41AB0C9D60077A631 /* Musica.m */, - 92C21CE71AAE858E0052ABE6 /* Filme.m */, E8D671CD1AB0C70F0077A631 /* Podcast.h */, E8D671CE1AB0C70F0077A631 /* Podcast.m */, E8D671D01AB0C71C0077A631 /* Ebook.h */, @@ -165,6 +174,16 @@ name = Entidades; sourceTree = ""; }; + E8EB46AD1AB3557C003F5198 /* Details */ = { + isa = PBXGroup; + children = ( + E8EB46AE1AB35599003F5198 /* DetailViewController.h */, + E8EB46AF1AB35599003F5198 /* DetailViewController.m */, + E8EB46B01AB35599003F5198 /* DetailViewController.xib */, + ); + name = Details; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -247,7 +266,8 @@ files = ( 92C21CC11AAE757A0052ABE6 /* Images.xcassets in Resources */, 92C21CE21AAE76930052ABE6 /* TableViewCell.xib in Resources */, - 92C21CDD1AAE75DC0052ABE6 /* TableView.xib in Resources */, + E8EB46A61AB3508C003F5198 /* TableView.xib in Resources */, + E8EB46B21AB35599003F5198 /* DetailViewController.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -270,6 +290,7 @@ E8D671CF1AB0C70F0077A631 /* Podcast.m in Sources */, 92C21CDB1AAE75B30052ABE6 /* iTunesManager.m in Sources */, 92C21CB91AAE757A0052ABE6 /* AppDelegate.m in Sources */, + E8EB46B11AB35599003F5198 /* DetailViewController.m in Sources */, 92C21CE81AAE858E0052ABE6 /* Filme.m in Sources */, 92C21CE11AAE76930052ABE6 /* TableViewCell.m in Sources */, E8D671D51AB0C9D60077A631 /* Musica.m in Sources */, @@ -295,6 +316,20 @@ }; /* End PBXTargetDependency section */ +/* Begin PBXVariantGroup section */ + E8EB46A81AB3508C003F5198 /* TableView.xib */ = { + isa = PBXVariantGroup; + children = ( + E8EB46A71AB3508C003F5198 /* Base */, + E8EB46AA1AB35090003F5198 /* en */, + E8EB46AB1AB3509F003F5198 /* fr */, + E8EB46AC1AB350A8003F5198 /* pt */, + ); + name = TableView.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + /* Begin XCBuildConfiguration section */ 92C21CD11AAE757A0052ABE6 /* Debug */ = { isa = XCBuildConfiguration; diff --git a/iTunesSearch/AppDelegate.m b/iTunesSearch/AppDelegate.m index d513fd8..90d68a7 100644 --- a/iTunesSearch/AppDelegate.m +++ b/iTunesSearch/AppDelegate.m @@ -28,7 +28,8 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( #warning Adicionado codigo para iniciar com a interface do TableView // TableViewController *tvc = [[TableViewController alloc] initWithNibName:@"TableView" bundle:nil]; TableViewController *tvc = [[TableViewController alloc] init]; - [self.window setRootViewController:tvc]; + UINavigationController *nav =[[UINavigationController alloc] initWithRootViewController:tvc]; + [self.window setRootViewController:nav]; [self.window makeKeyAndVisible]; return YES; } diff --git a/iTunesSearch/TableView.xib b/iTunesSearch/Base.lproj/TableView.xib similarity index 74% rename from iTunesSearch/TableView.xib rename to iTunesSearch/Base.lproj/TableView.xib index 11991ef..3980219 100644 --- a/iTunesSearch/TableView.xib +++ b/iTunesSearch/Base.lproj/TableView.xib @@ -16,14 +16,6 @@ - - - - - - - - @@ -32,72 +24,81 @@ + + + + + + + + - - - - - - - - - + + + + + + + + + + - + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - + + + + + + + + + diff --git a/iTunesSearch/DetailViewController.h b/iTunesSearch/DetailViewController.h new file mode 100644 index 0000000..ecc288e --- /dev/null +++ b/iTunesSearch/DetailViewController.h @@ -0,0 +1,20 @@ +// +// DetailViewController.h +// iTunesSearch +// +// Created by Hugo Luiz Chimello on 3/13/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import +#import "TableViewCell.h" +#import "TableViewController.h" + +@interface DetailViewController : UIViewController +@property (strong, nonatomic) IBOutlet UILabel *nome; +@property (strong, nonatomic) IBOutlet UILabel *genero; +@property (strong, nonatomic) IBOutlet UILabel *tipo; +@property (strong, nonatomic) IBOutlet UIImageView *img; +@property (strong, nonatomic) IBOutlet UILabel *preco; + +@end diff --git a/iTunesSearch/DetailViewController.m b/iTunesSearch/DetailViewController.m new file mode 100644 index 0000000..f9b5581 --- /dev/null +++ b/iTunesSearch/DetailViewController.m @@ -0,0 +1,37 @@ +// +// DetailViewController.m +// iTunesSearch +// +// Created by Hugo Luiz Chimello on 3/13/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import "DetailViewController.h" + +@interface DetailViewController () + +@end + +@implementation DetailViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view from its nib. +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/iTunesSearch/DetailViewController.xib b/iTunesSearch/DetailViewController.xib new file mode 100644 index 0000000..3b8bc19 --- /dev/null +++ b/iTunesSearch/DetailViewController.xib @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iTunesSearch/Ebook.h b/iTunesSearch/Ebook.h index f95786a..eb16065 100644 --- a/iTunesSearch/Ebook.h +++ b/iTunesSearch/Ebook.h @@ -16,4 +16,6 @@ @property (nonatomic, strong) NSString *genero; @property (nonatomic, strong) NSString *pais; @property (nonatomic, strong) NSNumber *preco; +@property (nonatomic, strong) NSString *img; + @end diff --git a/iTunesSearch/Entidades/Filme.h b/iTunesSearch/Entidades/Filme.h index 6702e34..3007cac 100644 --- a/iTunesSearch/Entidades/Filme.h +++ b/iTunesSearch/Entidades/Filme.h @@ -17,5 +17,6 @@ @property (nonatomic, strong) NSString *genero; @property (nonatomic, strong) NSString *pais; @property (nonatomic, strong) NSNumber *preco; +@property (nonatomic, strong) NSString *img; @end diff --git a/iTunesSearch/Musica.h b/iTunesSearch/Musica.h index 7d8050f..11f6864 100644 --- a/iTunesSearch/Musica.h +++ b/iTunesSearch/Musica.h @@ -17,5 +17,5 @@ @property (nonatomic, strong) NSString *genero; @property (nonatomic, strong) NSString *pais; @property (nonatomic, strong) NSNumber *preco; - +@property (nonatomic, strong) NSString *img; @end diff --git a/iTunesSearch/Podcast.h b/iTunesSearch/Podcast.h index b642542..0f4ec74 100644 --- a/iTunesSearch/Podcast.h +++ b/iTunesSearch/Podcast.h @@ -17,4 +17,6 @@ @property (nonatomic, strong) NSString *genero; @property (nonatomic, strong) NSString *pais; @property (nonatomic, strong) NSNumber *preco; +@property (nonatomic, strong) NSString *img; + @end diff --git a/iTunesSearch/TableViewCell.h b/iTunesSearch/TableViewCell.h index c2d9129..8ab201a 100644 --- a/iTunesSearch/TableViewCell.h +++ b/iTunesSearch/TableViewCell.h @@ -14,6 +14,8 @@ @property (weak, nonatomic) IBOutlet UILabel *tipo; @property (strong, nonatomic) IBOutlet UILabel *genero; @property (strong, nonatomic) IBOutlet UILabel *preco; +@property (strong, nonatomic) IBOutlet UIImageView *img; + diff --git a/iTunesSearch/TableViewCell.xib b/iTunesSearch/TableViewCell.xib index 9987f24..6732e2e 100644 --- a/iTunesSearch/TableViewCell.xib +++ b/iTunesSearch/TableViewCell.xib @@ -9,7 +9,7 @@ - + @@ -19,20 +19,27 @@ @@ -51,148 +58,163 @@ - - - - + - + + - - - - + + + + + + + - - - - - + - + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - + + + - - + + + - + + - - + - - - + + + - - + + + diff --git a/iTunesSearch/TableViewController.h b/iTunesSearch/TableViewController.h index 88fa7be..a210927 100644 --- a/iTunesSearch/TableViewController.h +++ b/iTunesSearch/TableViewController.h @@ -7,15 +7,16 @@ // #import +#import "DetailViewController.h" @interface TableViewController : UIViewController @property (strong, nonatomic) IBOutlet UITableView *tableview; @property (strong, nonatomic) IBOutlet UIView *view; @property (strong, nonatomic) IBOutlet UITextField *searchText; - +@property NSString *txtSearch; - (IBAction)searchButton:(id)sender; - +-(void)search; diff --git a/iTunesSearch/TableViewController.m b/iTunesSearch/TableViewController.m index 4d2c881..c2a17b1 100644 --- a/iTunesSearch/TableViewController.m +++ b/iTunesSearch/TableViewController.m @@ -13,6 +13,7 @@ #import "Musica.h" #import "Podcast.h" #import "Ebook.h" +#import "DetailViewController.h" @interface TableViewController () { NSArray *midias; @@ -35,24 +36,28 @@ - (void)viewDidLoad { UINib *nib = [UINib nibWithNibName:@"TableViewCell" bundle:nil]; [self.tableview registerNib:nib forCellReuseIdentifier:@"celulaPadrao"]; - iTunesManager *itunes = [iTunesManager sharedInstance]; + -#warning Necessario para que a table view tenha um espaco em relacao ao topo, pois caso contrario o texto ficara atras da barra superior - self.tableview.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableview.bounds.size.width, 15.f)]; + } -- (void)didReceiveMemoryWarning { +- (void)didReceiveMemoryWarnin + { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - +-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + DetailViewController *dnav =[[DetailViewController alloc]init]; + [self.navigationController pushViewController:dnav animated:YES ]; +} #pragma mark - Metodos do UITableViewDataSource -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 4; + return [midias count]; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return [midias count]; + + return [[midias objectAtIndex:section] count]; } -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ @@ -86,6 +91,7 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS [celula.tipo setText:@"Filme"]; [celula.genero setText:filme.genero]; [celula.preco setText:[NSString stringWithFormat:@"%@", filme.preco]]; + [celula.img setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:filme.img]]]]; break; case 1: @@ -94,6 +100,7 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS [celula.tipo setText:@"Musica"]; [celula.genero setText:musica.genero]; [celula.preco setText:[NSString stringWithFormat:@"%@", musica.preco]]; + [celula.img setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:musica.img]]]]; break; case 2: podcast=[mid objectAtIndex:row]; @@ -101,6 +108,7 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS [celula.tipo setText:@"podcast"]; [celula.genero setText:podcast.genero]; [celula.preco setText:[NSString stringWithFormat:@"%@", podcast.preco]]; + [celula.img setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:podcast.img]]]]; break; case 3: @@ -109,6 +117,7 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS [celula.tipo setText:@"ebook"]; [celula.genero setText:ebook.genero]; [celula.preco setText:[NSString stringWithFormat:@"%@", ebook.preco]]; + [celula.img setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:ebook.img]]]]; break; default: break; @@ -122,11 +131,17 @@ -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPat - (IBAction)searchButton:(id)sender { - iTunesManager *itunes = [iTunesManager sharedInstance]; - midias = [itunes buscarMidias: _searchText.text]; - NSLog(@"%lu",[midias[0] count]); - self.tableview.reloadData; - [_searchText resignFirstResponder]; + _txtSearch=_searchText.text; + + _txtSearch=[_txtSearch stringByReplacingOccurrencesOfString:@" " withString:@"+"]; + [self search]; +} + + +-(void)search{ + iTunesManager *itunes=[iTunesManager sharedInstance]; + midias=[itunes buscarMidias:_txtSearch]; + [_tableview reloadData]; } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ diff --git a/iTunesSearch/en.lproj/TableView.strings b/iTunesSearch/en.lproj/TableView.strings new file mode 100644 index 0000000..85df2ca --- /dev/null +++ b/iTunesSearch/en.lproj/TableView.strings @@ -0,0 +1,3 @@ + +/* Class = "UIButton"; normalTitle = "search"; ObjectID = "zLn-Q4-3o0"; */ +"zLn-Q4-3o0.normalTitle" = "search"; diff --git a/iTunesSearch/fr.lproj/TableView.strings b/iTunesSearch/fr.lproj/TableView.strings new file mode 100644 index 0000000..081dc05 --- /dev/null +++ b/iTunesSearch/fr.lproj/TableView.strings @@ -0,0 +1,3 @@ + +/* Class = "UIButton"; normalTitle = "search"; ObjectID = "zLn-Q4-3o0"; */ +"zLn-Q4-3o0.normalTitle" = "Recherche"; diff --git a/iTunesSearch/iTunesManager.m b/iTunesSearch/iTunesManager.m index e8079cb..a92f29d 100644 --- a/iTunesSearch/iTunesManager.m +++ b/iTunesSearch/iTunesManager.m @@ -37,7 +37,7 @@ - (NSArray *)buscarMidias:(NSString *)termo { termo = @""; } - NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/search?term=%@&media=all", termo]; + NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/search?term=%@&limit=200", termo]; NSData *jsonData = [NSData dataWithContentsOfURL: [NSURL URLWithString:url]]; NSError *error; @@ -57,23 +57,21 @@ - (NSArray *)buscarMidias:(NSString *)termo { NSString *type; - Filme *filmao= [[Filme alloc]init]; - filmao.nome=@"grande filme"; - [filmes addObject:filmao]; for (NSDictionary *item in resultados) { type=[item objectForKey:@"kind"]; - if([type isEqualToString:@"featured-movie"]){ - Filme *filme = [[Filme alloc] init]; - [filme setNome:[item objectForKey:@"trackName"]]; - [filme setTrackId:[item objectForKey:@"trackId"]]; - [filme setArtista:[item objectForKey:@"artistName"]]; - [filme setDuracao:[item objectForKey:@"trackTimeMillis"]]; + if([type isEqualToString:@"feature-movie"]){ + Filme *filme = [[Filme alloc] init]; + [filme setNome:[item objectForKey:@"trackName"]]; + [filme setTrackId:[item objectForKey:@"trackId"]]; + [filme setArtista:[item objectForKey:@"artistName"]]; + [filme setDuracao:[item objectForKey:@"trackTimeMillis"]]; [filme setGenero:[item objectForKey:@"primaryGenreName"]]; + [filme setPreco:[item objectForKey:@"trackPrice"]]; [filme setPais:[item objectForKey:@"country"]]; - [filme setPreco:[item objectForKey:@"trackPrice"]]; - [filmes addObject:filme]; + [filme setImg:[item objectForKey:@"artworkUrl100"]]; + [filmes addObject:filme]; } else if([type isEqualToString:@"song"]){ Musica *musica = [[Musica alloc] init]; @@ -84,6 +82,7 @@ - (NSArray *)buscarMidias:(NSString *)termo { [musica setGenero:[item objectForKey:@"primaryGenreName"]]; [musica setPais:[item objectForKey:@"country"]]; [musica setPreco:[item objectForKey:@"trackPrice"]]; + [musica setImg:[item objectForKey:@"artworkUrl100"]]; [musicas addObject:musica]; @@ -94,6 +93,7 @@ - (NSArray *)buscarMidias:(NSString *)termo { [podcast setTrackId:[item objectForKey:@"trackId"]]; [podcast setArtista:[item objectForKey:@"artistName"]]; [podcast setPreco:[item objectForKey:@"trackPrice"]]; + [podcast setImg:[item objectForKey:@"artworkUrl100"]]; [podcasts addObject:podcast]; } @@ -103,6 +103,7 @@ - (NSArray *)buscarMidias:(NSString *)termo { [ebook setTrackId:[item objectForKey:@"trackId"]]; [ebook setArtista:[item objectForKey:@"artistName"]]; [ebook setPreco:[item objectForKey:@"trackPrice"]]; + [ebook setImg:[item objectForKey:@"artworkUrl100"]]; [ebooks addObject: ebook]; } diff --git a/iTunesSearch/pt.lproj/TableView.strings b/iTunesSearch/pt.lproj/TableView.strings new file mode 100644 index 0000000..94b2359 --- /dev/null +++ b/iTunesSearch/pt.lproj/TableView.strings @@ -0,0 +1,3 @@ + +/* Class = "UIButton"; normalTitle = "search"; ObjectID = "zLn-Q4-3o0"; */ +"zLn-Q4-3o0.normalTitle" = "Buscar"; From 14a3da729543d5965ab094cec6363f15589a6bf5 Mon Sep 17 00:00:00 2001 From: Chimello44 Date: Fri, 13 Mar 2015 15:43:19 -0300 Subject: [PATCH 5/6] no message --- iTunesSearch/AppDelegate.m | 4 +- iTunesSearch/Base.lproj/TableView.xib | 80 +++++++++++++-------------- iTunesSearch/TableViewController.h | 2 +- iTunesSearch/TableViewController.m | 4 +- 4 files changed, 44 insertions(+), 46 deletions(-) diff --git a/iTunesSearch/AppDelegate.m b/iTunesSearch/AppDelegate.m index 90d68a7..740ee4c 100644 --- a/iTunesSearch/AppDelegate.m +++ b/iTunesSearch/AppDelegate.m @@ -22,11 +22,9 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( #warning Necessário para inicializar a aplicacao sem storyboard self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - // Override point for customization after application launch. + self.window.backgroundColor = [UIColor whiteColor]; -#warning Adicionado codigo para iniciar com a interface do TableView -// TableViewController *tvc = [[TableViewController alloc] initWithNibName:@"TableView" bundle:nil]; TableViewController *tvc = [[TableViewController alloc] init]; UINavigationController *nav =[[UINavigationController alloc] initWithRootViewController:tvc]; [self.window setRootViewController:nav]; diff --git a/iTunesSearch/Base.lproj/TableView.xib b/iTunesSearch/Base.lproj/TableView.xib index 3980219..e975d03 100644 --- a/iTunesSearch/Base.lproj/TableView.xib +++ b/iTunesSearch/Base.lproj/TableView.xib @@ -21,84 +21,84 @@ + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + - + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - + + + + + + + + + diff --git a/iTunesSearch/TableViewController.h b/iTunesSearch/TableViewController.h index a210927..25334cf 100644 --- a/iTunesSearch/TableViewController.h +++ b/iTunesSearch/TableViewController.h @@ -9,7 +9,7 @@ #import #import "DetailViewController.h" -@interface TableViewController : UIViewController +@interface TableViewController : UIViewController @property (strong, nonatomic) IBOutlet UITableView *tableview; @property (strong, nonatomic) IBOutlet UIView *view; diff --git a/iTunesSearch/TableViewController.m b/iTunesSearch/TableViewController.m index c2a17b1..7ffb41a 100644 --- a/iTunesSearch/TableViewController.m +++ b/iTunesSearch/TableViewController.m @@ -13,7 +13,7 @@ #import "Musica.h" #import "Podcast.h" #import "Ebook.h" -#import "DetailViewController.h" + @interface TableViewController () { NSArray *midias; @@ -48,7 +48,7 @@ - (void)didReceiveMemoryWarnin -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ DetailViewController *dnav =[[DetailViewController alloc]init]; - [self.navigationController pushViewController:dnav animated:YES ]; + [self.navigationController pushViewController:dnav animated:YES]; } #pragma mark - Metodos do UITableViewDataSource -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { From 93e69554ff7601a5922ce3f26ef307110853b1a3 Mon Sep 17 00:00:00 2001 From: Chimello44 Date: Fri, 13 Mar 2015 16:40:53 -0300 Subject: [PATCH 6/6] UINavigationController funcionando!!! --- iTunesSearch/AppDelegate.m | 2 +- iTunesSearch/Base.lproj/TableView.xib | 83 ++++++++-------- iTunesSearch/DetailViewController.xib | 135 ++++++++++++++++++++++---- iTunesSearch/TableViewController.m | 9 +- 4 files changed, 164 insertions(+), 65 deletions(-) diff --git a/iTunesSearch/AppDelegate.m b/iTunesSearch/AppDelegate.m index 740ee4c..8b8c343 100644 --- a/iTunesSearch/AppDelegate.m +++ b/iTunesSearch/AppDelegate.m @@ -22,7 +22,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( #warning Necessário para inicializar a aplicacao sem storyboard self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - + self.window.backgroundColor = [UIColor whiteColor]; TableViewController *tvc = [[TableViewController alloc] init]; diff --git a/iTunesSearch/Base.lproj/TableView.xib b/iTunesSearch/Base.lproj/TableView.xib index e975d03..84a9a8a 100644 --- a/iTunesSearch/Base.lproj/TableView.xib +++ b/iTunesSearch/Base.lproj/TableView.xib @@ -2,6 +2,7 @@ + @@ -21,84 +22,84 @@ - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + - + - + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - + + + + + + + + + diff --git a/iTunesSearch/DetailViewController.xib b/iTunesSearch/DetailViewController.xib index 3b8bc19..30cf355 100644 --- a/iTunesSearch/DetailViewController.xib +++ b/iTunesSearch/DetailViewController.xib @@ -24,61 +24,137 @@ - - - - - - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + @@ -86,8 +162,29 @@ - + + + + + + + + + + + + + + + + + + + + + + diff --git a/iTunesSearch/TableViewController.m b/iTunesSearch/TableViewController.m index 7ffb41a..507938e 100644 --- a/iTunesSearch/TableViewController.m +++ b/iTunesSearch/TableViewController.m @@ -82,7 +82,6 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS Ebook *ebook; long row=[indexPath row]; - switch (indexPath.section){ case 0: @@ -91,7 +90,8 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS [celula.tipo setText:@"Filme"]; [celula.genero setText:filme.genero]; [celula.preco setText:[NSString stringWithFormat:@"%@", filme.preco]]; - [celula.img setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:filme.img]]]]; + [celula.img setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:filme.img]]]]; + break; case 1: @@ -100,7 +100,7 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS [celula.tipo setText:@"Musica"]; [celula.genero setText:musica.genero]; [celula.preco setText:[NSString stringWithFormat:@"%@", musica.preco]]; - [celula.img setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:musica.img]]]]; + [celula.img setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:musica.img]]]]; break; case 2: podcast=[mid objectAtIndex:row]; @@ -112,6 +112,7 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS break; case 3: + ebook=[mid objectAtIndex:row]; [celula.nome setText:ebook.nome]; [celula.tipo setText:@"ebook"]; @@ -132,7 +133,7 @@ -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPat - (IBAction)searchButton:(id)sender { _txtSearch=_searchText.text; - + //nomes compostos _txtSearch=[_txtSearch stringByReplacingOccurrencesOfString:@" " withString:@"+"]; [self search]; }