From 26afde79c08b6254c54f2db8d771f70343ded9a0 Mon Sep 17 00:00:00 2001 From: Natalia Estrella Date: Sat, 17 Oct 2015 17:40:03 -0400 Subject: [PATCH] this is a thing --- .../project.pbxproj | 25 ++++ .../unit-2-assessment/APIMomager.h | 17 +++ .../unit-2-assessment/APIMomager.m | 31 +++++ .../unit-2-assessment/APIResults.h | 20 +++ .../unit-2-assessment/APIResults.m | 13 ++ .../Base.lproj/LaunchScreen.storyboard | 4 +- .../Base.lproj/Main.storyboard | 118 ++++++++++++++++- .../ForecastTableViewController.h | 13 ++ .../ForecastTableViewController.m | 120 ++++++++++++++++++ .../unit-2-assessment/SearchViewController.h | 13 ++ .../unit-2-assessment/SearchViewController.m | 95 ++++++++++++++ 11 files changed, 464 insertions(+), 5 deletions(-) create mode 100644 unit-2-assessment/unit-2-assessment/APIMomager.h create mode 100644 unit-2-assessment/unit-2-assessment/APIMomager.m create mode 100644 unit-2-assessment/unit-2-assessment/APIResults.h create mode 100644 unit-2-assessment/unit-2-assessment/APIResults.m create mode 100644 unit-2-assessment/unit-2-assessment/ForecastTableViewController.h create mode 100644 unit-2-assessment/unit-2-assessment/ForecastTableViewController.m create mode 100644 unit-2-assessment/unit-2-assessment/SearchViewController.h create mode 100644 unit-2-assessment/unit-2-assessment/SearchViewController.m diff --git a/unit-2-assessment/unit-2-assessment.xcodeproj/project.pbxproj b/unit-2-assessment/unit-2-assessment.xcodeproj/project.pbxproj index 838d4b4..587ee6e 100644 --- a/unit-2-assessment/unit-2-assessment.xcodeproj/project.pbxproj +++ b/unit-2-assessment/unit-2-assessment.xcodeproj/project.pbxproj @@ -7,6 +7,10 @@ objects = { /* Begin PBXBuildFile section */ + 518239311BD2A52C00F44326 /* APIMomager.m in Sources */ = {isa = PBXBuildFile; fileRef = 518239301BD2A52C00F44326 /* APIMomager.m */; settings = {ASSET_TAGS = (); }; }; + 518239341BD2A5F200F44326 /* APIResults.m in Sources */ = {isa = PBXBuildFile; fileRef = 518239331BD2A5F200F44326 /* APIResults.m */; settings = {ASSET_TAGS = (); }; }; + 518239371BD2AB8B00F44326 /* SearchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 518239361BD2AB8B00F44326 /* SearchViewController.m */; settings = {ASSET_TAGS = (); }; }; + 5182393A1BD2B11700F44326 /* ForecastTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 518239391BD2B11700F44326 /* ForecastTableViewController.m */; settings = {ASSET_TAGS = (); }; }; 8D6765A61BD289BC00B30411 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D6765A51BD289BC00B30411 /* main.m */; }; 8D6765A91BD289BC00B30411 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D6765A81BD289BC00B30411 /* AppDelegate.m */; }; 8D6765AC1BD289BC00B30411 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D6765AB1BD289BC00B30411 /* ViewController.m */; }; @@ -17,6 +21,14 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 5182392F1BD2A52C00F44326 /* APIMomager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIMomager.h; sourceTree = ""; }; + 518239301BD2A52C00F44326 /* APIMomager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APIMomager.m; sourceTree = ""; }; + 518239321BD2A5F200F44326 /* APIResults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIResults.h; sourceTree = ""; }; + 518239331BD2A5F200F44326 /* APIResults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APIResults.m; sourceTree = ""; }; + 518239351BD2AB8B00F44326 /* SearchViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchViewController.h; sourceTree = ""; }; + 518239361BD2AB8B00F44326 /* SearchViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchViewController.m; sourceTree = ""; }; + 518239381BD2B11700F44326 /* ForecastTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ForecastTableViewController.h; sourceTree = ""; }; + 518239391BD2B11700F44326 /* ForecastTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ForecastTableViewController.m; sourceTree = ""; }; 8D6765A11BD289BC00B30411 /* unit-2-assessment.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "unit-2-assessment.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 8D6765A51BD289BC00B30411 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 8D6765A71BD289BC00B30411 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; @@ -64,6 +76,14 @@ 8D6765A81BD289BC00B30411 /* AppDelegate.m */, 8D6765AA1BD289BC00B30411 /* ViewController.h */, 8D6765AB1BD289BC00B30411 /* ViewController.m */, + 5182392F1BD2A52C00F44326 /* APIMomager.h */, + 518239301BD2A52C00F44326 /* APIMomager.m */, + 518239321BD2A5F200F44326 /* APIResults.h */, + 518239331BD2A5F200F44326 /* APIResults.m */, + 518239351BD2AB8B00F44326 /* SearchViewController.h */, + 518239361BD2AB8B00F44326 /* SearchViewController.m */, + 518239381BD2B11700F44326 /* ForecastTableViewController.h */, + 518239391BD2B11700F44326 /* ForecastTableViewController.m */, 8D6765AD1BD289BC00B30411 /* Main.storyboard */, 8D6765B31BD289BC00B30411 /* Assets.xcassets */, 8D6765B51BD289BC00B30411 /* LaunchScreen.storyboard */, @@ -152,10 +172,14 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 518239311BD2A52C00F44326 /* APIMomager.m in Sources */, + 518239341BD2A5F200F44326 /* APIResults.m in Sources */, 8D6765B21BD289BC00B30411 /* unit_2_assessment.xcdatamodeld in Sources */, 8D6765AC1BD289BC00B30411 /* ViewController.m in Sources */, 8D6765A91BD289BC00B30411 /* AppDelegate.m in Sources */, 8D6765A61BD289BC00B30411 /* main.m in Sources */, + 5182393A1BD2B11700F44326 /* ForecastTableViewController.m in Sources */, + 518239371BD2AB8B00F44326 /* SearchViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -302,6 +326,7 @@ 8D6765BD1BD289BC00B30411 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ diff --git a/unit-2-assessment/unit-2-assessment/APIMomager.h b/unit-2-assessment/unit-2-assessment/APIMomager.h new file mode 100644 index 0000000..bb06168 --- /dev/null +++ b/unit-2-assessment/unit-2-assessment/APIMomager.h @@ -0,0 +1,17 @@ +// +// APIMomager.h +// unit-2-assessment +// +// Created by Natalia Estrella on 10/17/15. +// Copyright © 2015 Michael Kavouras. All rights reserved. +// + +#import + +@interface APIMomager : NSObject + ++ (void)GETRequestWithURL:(NSURL *)URL + completionHandler:(void(^)(NSData *data, NSURLResponse *response, NSError *error)) completionHandler ; + + +@end diff --git a/unit-2-assessment/unit-2-assessment/APIMomager.m b/unit-2-assessment/unit-2-assessment/APIMomager.m new file mode 100644 index 0000000..c40cd3d --- /dev/null +++ b/unit-2-assessment/unit-2-assessment/APIMomager.m @@ -0,0 +1,31 @@ +// +// APIMomager.m +// unit-2-assessment +// +// Created by Natalia Estrella on 10/17/15. +// Copyright © 2015 Michael Kavouras. All rights reserved. +// + +#import "APIMomager.h" + +@implementation APIMomager + +//creating a method ++ (void)GETRequestWithURL:(NSURL *)URL + completionHandler:(void(^)(NSData *data, NSURLResponse *response, NSError *error)) completionHandler { + + + NSURLSession *session = [NSURLSession sharedSession]; + + NSURLSessionDataTask *task = [session dataTaskWithURL:URL completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { + + + dispatch_async(dispatch_get_main_queue(), ^{ + completionHandler(data, response, error); + }); + }]; + + [task resume]; + +} +@end diff --git a/unit-2-assessment/unit-2-assessment/APIResults.h b/unit-2-assessment/unit-2-assessment/APIResults.h new file mode 100644 index 0000000..701f677 --- /dev/null +++ b/unit-2-assessment/unit-2-assessment/APIResults.h @@ -0,0 +1,20 @@ +// +// APIResults.h +// unit-2-assessment +// +// Created by Natalia Estrella on 10/17/15. +// Copyright © 2015 Michael Kavouras. All rights reserved. +// + +#import + +@interface APIResults : NSObject + +@property (nonatomic) NSString *temperatureMin; +@property (nonatomic) NSString *temperatureMax; +@property (nonatomic) NSString *summary; +@property (nonatomic) NSString *icon; + +@property (nonatomic) NSString *temp; + +@end diff --git a/unit-2-assessment/unit-2-assessment/APIResults.m b/unit-2-assessment/unit-2-assessment/APIResults.m new file mode 100644 index 0000000..7bf781f --- /dev/null +++ b/unit-2-assessment/unit-2-assessment/APIResults.m @@ -0,0 +1,13 @@ +// +// APIResults.m +// unit-2-assessment +// +// Created by Natalia Estrella on 10/17/15. +// Copyright © 2015 Michael Kavouras. All rights reserved. +// + +#import "APIResults.h" + +@implementation APIResults + +@end diff --git a/unit-2-assessment/unit-2-assessment/Base.lproj/LaunchScreen.storyboard b/unit-2-assessment/unit-2-assessment/Base.lproj/LaunchScreen.storyboard index 2e721e1..5a9c4a6 100644 --- a/unit-2-assessment/unit-2-assessment/Base.lproj/LaunchScreen.storyboard +++ b/unit-2-assessment/unit-2-assessment/Base.lproj/LaunchScreen.storyboard @@ -1,7 +1,7 @@ - + - + diff --git a/unit-2-assessment/unit-2-assessment/Base.lproj/Main.storyboard b/unit-2-assessment/unit-2-assessment/Base.lproj/Main.storyboard index e627b3b..1197dbd 100644 --- a/unit-2-assessment/unit-2-assessment/Base.lproj/Main.storyboard +++ b/unit-2-assessment/unit-2-assessment/Base.lproj/Main.storyboard @@ -1,13 +1,13 @@ - + - + - + @@ -15,12 +15,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/unit-2-assessment/unit-2-assessment/ForecastTableViewController.h b/unit-2-assessment/unit-2-assessment/ForecastTableViewController.h new file mode 100644 index 0000000..81982f0 --- /dev/null +++ b/unit-2-assessment/unit-2-assessment/ForecastTableViewController.h @@ -0,0 +1,13 @@ +// +// ForecastTableViewController.h +// unit-2-assessment +// +// Created by Natalia Estrella on 10/17/15. +// Copyright © 2015 Michael Kavouras. All rights reserved. +// + +#import + +@interface ForecastTableViewController : UITableViewController + +@end diff --git a/unit-2-assessment/unit-2-assessment/ForecastTableViewController.m b/unit-2-assessment/unit-2-assessment/ForecastTableViewController.m new file mode 100644 index 0000000..5597a0f --- /dev/null +++ b/unit-2-assessment/unit-2-assessment/ForecastTableViewController.m @@ -0,0 +1,120 @@ +// +// ForecastTableViewController.m +// unit-2-assessment +// +// Created by Natalia Estrella on 10/17/15. +// Copyright © 2015 Michael Kavouras. All rights reserved. +// + +#import "ForecastTableViewController.h" +#import "APIMomager.h" +#import "APIResults.h" + + +@interface ForecastTableViewController () + +@property (strong, nonatomic) NSMutableArray *searchResults; + +@end + +@implementation ForecastTableViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Uncomment the following line to preserve selection between presentations. + // self.clearsSelectionOnViewWillAppear = NO; + + // Uncomment the following line to display an Edit button in the navigation bar for this view controller. + // self.navigationItem.rightBarButtonItem = self.editButtonItem; +} + +-(void)makeFoursquareResquest:(NSString *)searchTerm + callbacKBlock:(void(^)())block{ + + //search term (from parameter) + +//NSString *latString = [NSNumber stringValue]; + + [super setValue:searchTerm forKey:@"27"]; + + + NSString *urlString= [NSString stringWithFormat:@"https://api.forecast.io/forecast/8040fc5b15adaaafabbe7de9c3ff5458/"]; + //encoded URL + + + NSString *encodingString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; + + NSLog(@"%@", encodingString); + + //make the request + //do somehting with the data + + NSURL *url = [NSURL URLWithString:encodingString]; + [APIMomager GETRequestWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { + + if (data !=nil) { + + NSDictionary *json = [NSJSONSerialization JSONObjectWithData:(NSData *)data options:0 error:nil]; + NSLog(@"%@", json); + + // NSArray *results = [json objectForKey:@"results"]; + + + + self.searchResults = [[NSMutableArray alloc] init]; + + for (NSDictionary *weather in json[@"currently"]) { + + NSString *temp = weather[@"temperature"]; +// NSString *shortDescprition = weather[@"description"]; + + + APIResults *searchObject = [[APIResults alloc] init]; + + searchObject.temp = temp; +// searchObject.shortDescription = shortDescprition; + + [self.searchResults addObject:searchObject]; + + + } + block (); + } + + + }]; + [self.tableView reloadData]; + +} + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.searchResults.count; +} + + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellIdentifier" forIndexPath:indexPath]; + + APIResults *currentResult = self.searchResults[indexPath.row]; + + cell.textLabel.text = currentResult.temp; + +// NSNumber *tempNumber = currentResult.temp; +// NSString *myNumberInString = [tempNumber stringValue]; +// cell.textLabel.text = myNumberInString; + + + return cell; +} + + + + +@end diff --git a/unit-2-assessment/unit-2-assessment/SearchViewController.h b/unit-2-assessment/unit-2-assessment/SearchViewController.h new file mode 100644 index 0000000..b96d8bf --- /dev/null +++ b/unit-2-assessment/unit-2-assessment/SearchViewController.h @@ -0,0 +1,13 @@ +// +// SearchViewController.h +// unit-2-assessment +// +// Created by Natalia Estrella on 10/17/15. +// Copyright © 2015 Michael Kavouras. All rights reserved. +// + +#import + +@interface SearchViewController : UIViewController + +@end diff --git a/unit-2-assessment/unit-2-assessment/SearchViewController.m b/unit-2-assessment/unit-2-assessment/SearchViewController.m new file mode 100644 index 0000000..8d7d513 --- /dev/null +++ b/unit-2-assessment/unit-2-assessment/SearchViewController.m @@ -0,0 +1,95 @@ +// +// SearchViewController.m +// unit-2-assessment +// +// Created by Natalia Estrella on 10/17/15. +// Copyright © 2015 Michael Kavouras. All rights reserved. +// + +#import "SearchViewController.h" +#import "ForecastTableViewController.h" +#import "APIMomager.h" +#import "APIResults.h" + +@interface SearchViewController () + +@property (weak, nonatomic) IBOutlet UITextField *latitude; +@property (weak, nonatomic) IBOutlet UITextField *longitude; + +@property (nonatomic) APIResults *apiResults; +//@property (nonatomic) NSString *lat; +//@property (nonatomic) NSString *lng; +@property (nonatomic) NSString *latAndLng: + +@end + +@implementation SearchViewController + +- (void)viewDidLoad { +[super viewDidLoad]; +self.apiResults = [[APIResults alloc] init]; +} + + +- (IBAction)saveButtTapped:(UIButton *)sender { + + + self.latLngString = [NSString stringWithFormat:@"%@,%@",self.latTextField.text,self.lngTextField.text]; + + NSLog(@"LAT LNG String: %@",self.latLngString); + + [self dismissViewControllerAnimated:YES completion:nil]; + + [[NSUserDefaults standardUserDefaults] setObject:self.latLngString forKey:@"latLngString"]; + [[NSUserDefaults standardUserDefaults] synchronize]; + +// NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + +// NSString *latitudeText = self.latitude.text; +// [defaults setObject:latitudeText forKey:@"latitudeText"]; +// +// +// NSString* temp = [defaults objectForKey:@"latitudeText"]; +// NSLog(@"%@",temp); +} + + + + +//-(void)segueToForecastTableViewControllerWith: (NSInteger *)lat +// and: (NSInteger *)lng { +// +// UITableViewController *forecastTableViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"FTBController"]; +// +// +// +// +// ForecastTableViewController *forecastTVC = (ForecastTableViewController *)( +// +// learnerProfileVC.learner = self.learner; +// +// [learnerProfileVC.learner setSkillWith:self.learnerSkill]; +// +// [learnerProfileVC.learner saveLearnerSkill]; +// +// [self presentViewController:tabBarController animated:YES completion:nil]; +//} +// +//- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { +// +// +// // Get the new view controller using [segue destinationViewController]. +// // Pass the selected object to the new view controller. +// +// +// NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow]; +// +// Student *students = self.students[selectedIndexPath.row]; +// +// NamesDetailViewController *detailVC = segue.destinationViewController; +// +// +// detailVC.studentFile = students; +//} + +@end