Commit 3ee7f1c
Changed files (17)
cakeside-ios
controllers
utility
cakeside-ios.xcodeproj
cakeside-ios/controllers/CreationsTableViewController.h
@@ -1,13 +1,3 @@
-//
-// CreationsTableViewController.h
-// cakeside-ios
-//
-// Created by mo khan on 2013-07-14.
-// Copyright (c) 2013 mo khan. All rights reserved.
-//
-
#import <UIKit/UIKit.h>
-
@interface CreationsTableViewController : UITableViewController
-
@end
cakeside-ios/controllers/CreationsTableViewController.m
@@ -1,11 +1,3 @@
-//
-// CreationsTableViewController.m
-// cakeside-ios
-//
-// Created by mo khan on 2013-07-14.
-// Copyright (c) 2013 mo khan. All rights reserved.
-//
-
#import "CreationsTableViewController.h"
#import "Cake.h"
@@ -19,33 +11,22 @@
{
self = [super initWithStyle:style];
if (self) {
- // Custom initialization
}
return self;
}
- (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;
-
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(updatedDataNotification)
- name:NOTIFICATION_UPDATED_STATS_DATA
- object:nil];
- // start loading data...
+ [super viewDidLoad];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updatedDataNotification) name:NOTIFICATION_CAKES_UPDATED object:nil];
+ // start loading data
[self updateData];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
}
- (void)updatedDataNotification
@@ -57,60 +38,47 @@
{
self.data = nil;
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
-
+
NSError *error;
NSString *token = [SSKeychain passwordForService:KEYCHAIN_API_TOKEN account:KEYCHAIN_ACCOUNT error:&error];
-
+
// load data
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:HOST]];
[httpClient registerHTTPOperationClass:[AFJSONRequestOperation class]];
[httpClient setDefaultHeader:@"Accept" value:@"application/json"];
[httpClient setDefaultHeader:@"Authorization" value:[NSString stringWithFormat:@"Token token=%@", token]];
[httpClient setParameterEncoding:AFJSONParameterEncoding];
-
+
NSMutableURLRequest *request;
request = [httpClient requestWithMethod:@"GET" path:URL_CAKES parameters:nil];
-
+
NSLog(@"GET: %@", request);
-
- AFJSONRequestOperation *operation = [AFJSONRequestOperation
- JSONRequestOperationWithRequest:request
- success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
- {
- [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
- //NSLog(@"%@", JSON);
-
- if (!self.data)
- {
- self.data = [[NSMutableArray alloc] init];
- }
-
- for (NSDictionary *data in JSON)
- {
- Cake *cake = [Cake initFromJSON:data];
- [self.data addObject:cake];
- }
-
- [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_UPDATED_STATS_DATA object:nil];
- }
- failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON)
- {
- NSLog(@"Request Failed with Error: %@, %@", error, error.userInfo);
- [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
- [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_UPDATED_STATS_DATA object:nil];
-
- BlockAlertView *alert = [BlockAlertView alertWithTitle:@"Error" message:@"Failed to retrieve reading data. Please try again later."];
- [alert setCancelButtonWithTitle:@"Ok" block:nil];
- [alert show];
- }];
+
+ AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
+ [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
+ if (!self.data)
+ {
+ self.data = [[NSMutableArray alloc] init];
+ }
+ for (NSDictionary *data in JSON)
+ {
+ Cake *cake = [Cake initFromJSON:data];
+ [self.data addObject:cake];
+ }
+ [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_CAKES_UPDATED object:nil];
+ }
+ failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
+ NSLog(@"Request Failed with Error: %@, %@", error, error.userInfo);
+ [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
+ [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_CAKES_UPDATED object:nil];
+
+ BlockAlertView *alert = [BlockAlertView alertWithTitle:@"Oops..." message:@"Something is broken in the kitchen. Please try again later."];
+ [alert setCancelButtonWithTitle:@"Got it" block:nil];
+ [alert show];
+ }];
[operation start];
-
-
}
-
-
-
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
@@ -120,13 +88,9 @@
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
- if (!self.data)
- {
- return 0; // Loading
- }
- else if (self.data.count == 0)
+ if (!self.data || self.data.count == 0)
{
- return 1; // no data
+ return 0;
}
else
{
@@ -136,61 +100,23 @@
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ReadingCell"];
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CakeCell"];
if (cell == nil)
{
- cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ReadingCell"];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CakeCell"];
}
-
-
+
Cake *cake = [self.data objectAtIndex:indexPath.row];
- [cell.imageView setImageWithURL:[NSURL URLWithString:cake.photo]
- placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
-
+ [cell.imageView setImageWithURL:[NSURL URLWithString:cake.photo] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
cell.textLabel.text = cake.name;
return cell;
-
}
-
-// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
- // Return NO if you do not want the specified item to be editable.
return NO;
}
-
-/*
-// Override to support editing the table view.
-- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
-{
- if (editingStyle == UITableViewCellEditingStyleDelete) {
- // Delete the row from the data source
- [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
- }
- else if (editingStyle == UITableViewCellEditingStyleInsert) {
- // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
- }
-}
-*/
-
-/*
-// Override to support rearranging the table view.
-- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
-{
-}
-*/
-
-/*
-// Override to support conditional rearranging of the table view.
-- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
-{
- // Return NO if you do not want the item to be re-orderable.
- return YES;
-}
-*/
-
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
cakeside-ios/controllers/LoginViewController.h
@@ -1,16 +1,7 @@
-//
-// ViewController.h
-// cakeside-ios
-//
-// Created by mo khan on 2013-07-14.
-// Copyright (c) 2013 mo khan. All rights reserved.
-//
-
#import <UIKit/UIKit.h>
@interface LoginViewController : UIViewController
@property (strong, nonatomic) IBOutlet UITextField *emailTextBox;
@property (strong, nonatomic) IBOutlet UITextField *passwordTextBox;
@property (strong, nonatomic) IBOutlet UIButton *loginButton;
-
@end
cakeside-ios/controllers/LoginViewController.m
@@ -9,15 +9,15 @@
- (void)viewDidLoad
{
- [super viewDidLoad];
+ [super viewDidLoad];
UIView *emailPaddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];
self.emailTextBox.leftView = emailPaddingView;
self.emailTextBox.leftViewMode = UITextFieldViewModeAlways;
-
+
UIView *passwordPaddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];
self.passwordTextBox.leftView = passwordPaddingView;
self.passwordTextBox.leftViewMode = UITextFieldViewModeAlways;
-
+
// prepopulate username/password with stored information
NSError *error;
NSString *username = [SSKeychain passwordForService:KEYCHAIN_USER_NAME account:KEYCHAIN_ACCOUNT error:&error];
@@ -47,7 +47,6 @@
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
}
#pragma mark UITextFieldDelegate
@@ -68,7 +67,6 @@
return YES;
}
-
- (void)textFieldDidEndEditing:(UITextField *)textField
{
[textField resignFirstResponder];
@@ -81,7 +79,6 @@
#pragma mark - Action methods
-
- (IBAction)backgroundTapped:(id)sender
{
[self dismissKeyboard];
@@ -95,7 +92,7 @@
self.HUD.customView = nil;
[self.HUD show:YES];
- // try to login/register...
+ // try to login
NSDictionary *params = @{@"email": self.emailTextBox.text, @"password": self.passwordTextBox.text};
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:HOST]];
[httpClient registerHTTPOperationClass:[AFJSONRequestOperation class]];
@@ -109,7 +106,6 @@
NSLog(@"%@", JSON);
// check if login was successfull
NSString *token = [JSON objectForKey:@"auth_token"];
- NSLog(token);
if (!token || [token isEmpty])
{
[self.HUD hide:YES];
cakeside-ios/models/Cake.h
@@ -1,13 +1,4 @@
-//
-// Cake.h
-// cakeside-ios
-//
-// Created by mo khan on 2013-07-14.
-// Copyright (c) 2013 mo khan. All rights reserved.
-//
-
#import <Foundation/Foundation.h>
-
@interface Cake : NSObject
+ (Cake *)initFromJSON:(NSDictionary *)jsonData;
@property (nonatomic) NSInteger id;
cakeside-ios/models/Cake.m
@@ -1,17 +1,9 @@
-//
-// Cake.m
-// cakeside-ios
-//
-// Created by mo khan on 2013-07-14.
-// Copyright (c) 2013 mo khan. All rights reserved.
-//
-
#import "Cake.h"
@implementation Cake
+ (Cake *)initFromJSON:(NSDictionary *)jsonData;
{
- NSLog(@"%@", jsonData);
+ NSLog(@"%@", jsonData);
Cake *result = [[Cake alloc] init];
result.id = [[jsonData objectForKey:@"id"] integerValue];
result.name = [jsonData objectForKey:@"name"];
cakeside-ios/utility/NSDictionary+Additions.h
@@ -1,13 +0,0 @@
-//
-// NSDictionary+NSDictionary_Additions.h
-// fastcab-driver
-//
-// Created by Rick Cotter on 12-03-20.
-// Copyright (c) 2012 Assn. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-@interface NSDictionary (Additions)
--(id) objectForKey:(NSString *)key defaultValue:(id)defaultValue;
-@end
cakeside-ios/utility/NSDictionary+Additions.m
@@ -1,26 +0,0 @@
-//
-// NSDictionary+NSDictionary_Additions.m
-// fastcab-driver
-//
-// Created by Rick Cotter on 12-03-20.
-// Copyright (c) 2012 Assn. All rights reserved.
-//
-
-#import "NSDictionary+Additions.h"
-
-@implementation NSDictionary (Additions)
-
--(id) objectForKey:(NSString *)key defaultValue:(id)defaultValue {
- id value = [self objectForKey:key];
- if (!value) {
- return defaultValue;
- }
-
- if (value == [NSNull null]) {
- return defaultValue;
- }
-
- return value;
-}
-
-@end
cakeside-ios/utility/NSString+Additions.h
@@ -1,33 +0,0 @@
-//
-// NSString+Additions.h
-// Cardinal
-//
-// Created by Cory Smith on 10-03-28.
-// Copyright 2010 Assn. All rights reserved.
-//
-
-@interface NSString (md5)
-
-+ (NSString *) md5:(NSString *)str;
-
-@end
-
-@interface NSString (Assn)
-- (NSString *)trim;
-- (BOOL)isEmpty;
-- (BOOL)startsWith:(NSString *)starting;
-- (BOOL)endsWith:(NSString *)ending;
-- (BOOL)contains:(NSString *)text;
-- (NSString *)urlEncode;
-- (NSString *)replace:(NSString *)find with:(NSString *)replacement;
-- (NSString *)replaceAll:(NSArray *)keys with:(NSArray *)values;
-
-// Replace newlines with <br /> tags.
-- (NSString *)stringWithNewLinesAsBRs;
-
-- (NSString *)sanitizeForHTMLOutput;
-
-+ (NSString *)generateUUID;
-
-@end
-
cakeside-ios/utility/NSString+Additions.m
@@ -1,159 +0,0 @@
-//
-// NSString+Additions.m
-// Cardinal
-//
-// Created by Cory Smith on 10-03-28.
-// Copyright 2010 Assn. All rights reserved.
-//
-
-#import "NSString+Additions.h"
-
-
-#import <CommonCrypto/CommonDigest.h>
-
-@implementation NSString (md5)
-
-+ (NSString *) md5:(NSString *)str {
- const char *cStr = [str UTF8String];
- unsigned char result[16];
- CC_MD5( cStr, strlen(cStr), result );
- return [NSString stringWithFormat:
- @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
- result[0], result[1], result[2], result[3],
- result[4], result[5], result[6], result[7],
- result[8], result[9], result[10], result[11],
- result[12], result[13], result[14], result[15]
- ];
-}
-
-@end
-
-@implementation NSString (Assn)
-
-- (NSString *)trim {
- return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
-}
-
-- (BOOL)isEmpty {
- return [[self trim] isEqualToString:@""];
-}
-
-- (BOOL)endsWith:(NSString *)ending {
-
- int indexToCheck = [self length] - [ending length];
-
- if(indexToCheck >= 0)
- return [[self substringFromIndex:indexToCheck] isEqualToString:ending];
-
- return NO;
-}
-
-- (BOOL)startsWith:(NSString *)starting {
- if([starting isEmpty] || [starting length] > self.length)
- return NO;
-
- return [[self substringToIndex:[starting length]] isEqualToString:starting];
-}
-
-- (NSString *)replace:(NSString *)find with:(NSString *)replacement {
- return [self stringByReplacingOccurrencesOfString:find withString:replacement];
-}
-
-
-- (NSString *)replaceAll:(NSArray *)keys with:(NSArray *)values {
-
- NSMutableString *s = [NSMutableString stringWithString:self];
-
- for (int i = 0; i < keys.count; i++) {
- [s replaceOccurrencesOfString:[keys objectAtIndex:i]
- withString:[values objectAtIndex:i]
- options:NSLiteralSearch
- range:NSMakeRange(0, [s length])];
- }
-
- return s;
-}
-
-
-- (BOOL)contains:(NSString *)text {
- NSRange range = [[self lowercaseString] rangeOfString:[text lowercaseString]];
- return range.location != NSNotFound;
-}
-
-- (NSString *)urlEncode
-{
- NSString *result = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)self, NULL, CFSTR(":/?#[]@!$&’()*+,;="), kCFStringEncodingUTF8);
- return result;
-}
-
-- (NSString *)stringWithNewLinesAsBRs {
-
- // Strange New lines:
- // Next Line, U+0085
- // Form Feed, U+000C
- // Line Separator, U+2028
- // Paragraph Separator, U+2029
-
- // Scanner
- NSScanner *scanner = [[NSScanner alloc] initWithString:self];
- [scanner setCharactersToBeSkipped:nil];
- NSMutableString *result = [[NSMutableString alloc] init];
- NSString *temp;
- NSCharacterSet *newLineCharacters = [NSCharacterSet characterSetWithCharactersInString:
- [NSString stringWithFormat:@"\n\r"]];
- // Scan
- do {
-
- // Get non new line characters
- temp = nil;
- [scanner scanUpToCharactersFromSet:newLineCharacters intoString:&temp];
- if (temp) [result appendString:temp];
- temp = nil;
-
- // Add <br /> s
- if ([scanner scanString:@"\r\n" intoString:nil]) {
-
- // Combine \r\n into just 1 <br />
- [result appendString:@"<br />"];
-
- } else if ([scanner scanCharactersFromSet:newLineCharacters intoString:&temp]) {
-
- // Scan other new line characters and add <br /> s
- if (temp) {
- for (NSUInteger i = 0; i < temp.length; i++) {
- [result appendString:@"<br />"];
- }
- }
-
- }
-
- } while (![scanner isAtEnd]);
-
- // Cleanup & return
- NSString *retString = [NSString stringWithString:result];
-
- // Return
- return retString;
-
-}
-
-
-- (NSString *)sanitizeForHTMLOutput
-{
- NSString *result = self;
- if (!result) { result = @""; }
- result = [result trim];
- result = [result stringWithNewLinesAsBRs];
- return result;
-}
-
-+ (NSString *)generateUUID
-{
- CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
- NSString * uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
- CFRelease(newUniqueId);
-
- return uuidString;
-}
-
-@end
cakeside-ios/utility/NSString+Extensions.h
@@ -0,0 +1,5 @@
+@interface NSString (Extensions)
+- (NSString *)trim;
+- (BOOL)isEmpty;
+@end
+
cakeside-ios/utility/NSString+Extensions.m
@@ -0,0 +1,14 @@
+#import "NSString+Extensions.h"
+#import <CommonCrypto/CommonDigest.h>
+
+@implementation NSString (Extensions)
+
+- (NSString *)trim {
+ return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
+}
+
+- (BOOL)isEmpty {
+ return [[self trim] isEqualToString:@""];
+}
+
+@end
cakeside-ios/AppDelegate.h
@@ -1,19 +1,9 @@
-//
-// AppDelegate.h
-// cakeside-ios
-//
-// Created by mo khan on 2013-07-14.
-// Copyright (c) 2013 mo khan. All rights reserved.
-//
-
#import <UIKit/UIKit.h>
@class LoginViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
-
@property (strong, nonatomic) UIWindow *window;
-
@property (strong, nonatomic) LoginViewController *viewController;
@property (strong, nonatomic) UINavigationController * navigationController;
@end
cakeside-ios/AppDelegate.m
@@ -1,13 +1,4 @@
-//
-// AppDelegate.m
-// cakeside-ios
-//
-// Created by mo khan on 2013-07-14.
-// Copyright (c) 2013 mo khan. All rights reserved.
-//
-
#import "AppDelegate.h"
-
#import "LoginViewController.h"
@implementation AppDelegate
@@ -15,7 +6,6 @@
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
- // Override point for customization after application launch.
self.viewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window.rootViewController = self.navigationController;
@@ -25,29 +15,22 @@
- (void)applicationWillResignActive:(UIApplication *)application
{
- // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
- // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
- // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
- // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
- // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
- // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application
{
- // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end
cakeside-ios/cakeside-ios-Prefix.pch
@@ -12,8 +12,7 @@
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <BlocksKit/BlocksKit.h>
-#import "NSString+Additions.h"
-#import "NSDictionary+Additions.h"
+#import "NSString+Extensions.h"
#import "MBProgressHUD.h"
#import "BlockAlertView.h"
#import "AppDelegate.h"
@@ -41,4 +40,4 @@
#define OVERLAY_MESSAGE_DURATION 3
// Notifications
-#define NOTIFICATION_UPDATED_STATS_DATA @"NOTIFICATION_UPDATED_STATS_DATA"
\ No newline at end of file
+#define NOTIFICATION_CAKES_UPDATED @"NOTIFICATION_CAKES_UPDATED"
cakeside-ios/main.m
@@ -1,13 +1,4 @@
-//
-// main.m
-// cakeside-ios
-//
-// Created by mo khan on 2013-07-14.
-// Copyright (c) 2013 mo khan. All rights reserved.
-//
-
#import <UIKit/UIKit.h>
-
#import "AppDelegate.h"
int main(int argc, char *argv[])
cakeside-ios.xcodeproj/project.pbxproj
@@ -25,13 +25,12 @@
CDCB348D1793405E00A25F1E /* cakeside_iosTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CDCB348C1793405E00A25F1E /* cakeside_iosTests.m */; };
CDE67AB0179347D400B4742C /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CDE67AAF179347D400B4742C /* LoginViewController.m */; };
CDE67AB2179348EB00B4742C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDE67AB1179348EB00B4742C /* Security.framework */; };
- CDE67AB617934E4200B4742C /* NSString+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = CDE67AB517934E4200B4742C /* NSString+Additions.m */; };
- CDE67AC017934E7D00B4742C /* NSDictionary+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = CDE67ABF17934E7D00B4742C /* NSDictionary+Additions.m */; };
CDE67AC417935C1C00B4742C /* CreationsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CDE67AC217935C1C00B4742C /* CreationsTableViewController.m */; };
CDE67AC517935C1C00B4742C /* CreationsTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = CDE67AC317935C1C00B4742C /* CreationsTableViewController.xib */; };
CDE67ACB179364A600B4742C /* Cake.m in Sources */ = {isa = PBXBuildFile; fileRef = CDE67ACA179364A600B4742C /* Cake.m */; };
CDE67AD0179375DA00B4742C /* placeholder.png in Resources */ = {isa = PBXBuildFile; fileRef = CDE67ACF179375DA00B4742C /* placeholder.png */; };
CDE67AD21793807800B4742C /* cakeside-logo.png in Resources */ = {isa = PBXBuildFile; fileRef = CDE67AD11793807800B4742C /* cakeside-logo.png */; };
+ CDE67AD81793835E00B4742C /* NSString+Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CDE67AD61793835E00B4742C /* NSString+Extensions.m */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -69,10 +68,6 @@
CDE67AAE179347D400B4742C /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; };
CDE67AAF179347D400B4742C /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; };
CDE67AB1179348EB00B4742C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
- CDE67AB417934E4200B4742C /* NSString+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Additions.h"; sourceTree = "<group>"; };
- CDE67AB517934E4200B4742C /* NSString+Additions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Additions.m"; sourceTree = "<group>"; };
- CDE67ABE17934E7D00B4742C /* NSDictionary+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+Additions.h"; sourceTree = "<group>"; };
- CDE67ABF17934E7D00B4742C /* NSDictionary+Additions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+Additions.m"; sourceTree = "<group>"; };
CDE67AC117935C1C00B4742C /* CreationsTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CreationsTableViewController.h; sourceTree = "<group>"; };
CDE67AC217935C1C00B4742C /* CreationsTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CreationsTableViewController.m; sourceTree = "<group>"; };
CDE67AC317935C1C00B4742C /* CreationsTableViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CreationsTableViewController.xib; path = ../controllers/CreationsTableViewController.xib; sourceTree = "<group>"; };
@@ -80,6 +75,8 @@
CDE67ACA179364A600B4742C /* Cake.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Cake.m; sourceTree = "<group>"; };
CDE67ACF179375DA00B4742C /* placeholder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = placeholder.png; sourceTree = "<group>"; };
CDE67AD11793807800B4742C /* cakeside-logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cakeside-logo.png"; sourceTree = "<group>"; };
+ CDE67AD51793835E00B4742C /* NSString+Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Extensions.h"; sourceTree = "<group>"; };
+ CDE67AD61793835E00B4742C /* NSString+Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Extensions.m"; sourceTree = "<group>"; };
CE65D4B28521438085302B5E /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
@@ -223,10 +220,8 @@
CDE67AB317934E4200B4742C /* utility */ = {
isa = PBXGroup;
children = (
- CDE67ABE17934E7D00B4742C /* NSDictionary+Additions.h */,
- CDE67ABF17934E7D00B4742C /* NSDictionary+Additions.m */,
- CDE67AB417934E4200B4742C /* NSString+Additions.h */,
- CDE67AB517934E4200B4742C /* NSString+Additions.m */,
+ CDE67AD51793835E00B4742C /* NSString+Extensions.h */,
+ CDE67AD61793835E00B4742C /* NSString+Extensions.m */,
);
path = utility;
sourceTree = "<group>";
@@ -387,10 +382,9 @@
CDCB34681793405E00A25F1E /* main.m in Sources */,
CDCB346C1793405E00A25F1E /* AppDelegate.m in Sources */,
CDE67AB0179347D400B4742C /* LoginViewController.m in Sources */,
- CDE67AB617934E4200B4742C /* NSString+Additions.m in Sources */,
- CDE67AC017934E7D00B4742C /* NSDictionary+Additions.m in Sources */,
CDE67AC417935C1C00B4742C /* CreationsTableViewController.m in Sources */,
CDE67ACB179364A600B4742C /* Cake.m in Sources */,
+ CDE67AD81793835E00B4742C /* NSString+Extensions.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};