From 784c2329778ef8a2807c8ea3fabbb14f3cc00da6 Mon Sep 17 00:00:00 2001 From: Greg Spiers Date: Tue, 26 Jun 2012 13:28:13 +0100 Subject: [PATCH] Initial import. --- .gitignore | 10 + Solution/Resources/Icon.png | Bin 0 -> 3536 bytes Solution/Resources/Icon@2x.png | Bin 0 -> 8806 bytes .../project.pbxproj | 299 ++++++++++++++++++ Solution/TemperatureCalculator/AppDelegate.h | 7 + Solution/TemperatureCalculator/AppDelegate.m | 7 + .../TemperatureCalculator-Info.plist | 51 +++ .../TemperatureCalculator-Prefix.pch | 14 + .../TemperatureCalculator/ViewController.h | 5 + .../TemperatureCalculator/ViewController.m | 48 +++ .../en.lproj/InfoPlist.strings | 2 + .../en.lproj/MainStoryboard.storyboard | 79 +++++ Solution/TemperatureCalculator/main.m | 18 ++ Template/Resources/Icon.png | Bin 0 -> 3536 bytes Template/Resources/Icon@2x.png | Bin 0 -> 8806 bytes .../project.pbxproj | 299 ++++++++++++++++++ Template/TemperatureCalculator/AppDelegate.h | 7 + Template/TemperatureCalculator/AppDelegate.m | 7 + .../TemperatureCalculator-Info.plist | 51 +++ .../TemperatureCalculator-Prefix.pch | 14 + .../TemperatureCalculator/ViewController.h | 5 + .../TemperatureCalculator/ViewController.m | 34 ++ .../en.lproj/InfoPlist.strings | 2 + .../en.lproj/MainStoryboard.storyboard | 38 +++ Template/TemperatureCalculator/main.m | 18 ++ 25 files changed, 1015 insertions(+) create mode 100644 .gitignore create mode 100644 Solution/Resources/Icon.png create mode 100644 Solution/Resources/Icon@2x.png create mode 100644 Solution/TemperatureCalculator.xcodeproj/project.pbxproj create mode 100644 Solution/TemperatureCalculator/AppDelegate.h create mode 100644 Solution/TemperatureCalculator/AppDelegate.m create mode 100644 Solution/TemperatureCalculator/TemperatureCalculator-Info.plist create mode 100644 Solution/TemperatureCalculator/TemperatureCalculator-Prefix.pch create mode 100644 Solution/TemperatureCalculator/ViewController.h create mode 100644 Solution/TemperatureCalculator/ViewController.m create mode 100644 Solution/TemperatureCalculator/en.lproj/InfoPlist.strings create mode 100644 Solution/TemperatureCalculator/en.lproj/MainStoryboard.storyboard create mode 100644 Solution/TemperatureCalculator/main.m create mode 100644 Template/Resources/Icon.png create mode 100644 Template/Resources/Icon@2x.png create mode 100644 Template/TemperatureCalculator.xcodeproj/project.pbxproj create mode 100644 Template/TemperatureCalculator/AppDelegate.h create mode 100644 Template/TemperatureCalculator/AppDelegate.m create mode 100644 Template/TemperatureCalculator/TemperatureCalculator-Info.plist create mode 100644 Template/TemperatureCalculator/TemperatureCalculator-Prefix.pch create mode 100644 Template/TemperatureCalculator/ViewController.h create mode 100644 Template/TemperatureCalculator/ViewController.m create mode 100644 Template/TemperatureCalculator/en.lproj/InfoPlist.strings create mode 100644 Template/TemperatureCalculator/en.lproj/MainStoryboard.storyboard create mode 100644 Template/TemperatureCalculator/main.m diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7221262 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +.DS_Store +*.mode1v3 +*.mode2v3 +*.perspectivev3 +*.pbxuser +*.tm_build_errors +*.xcuserdatad +contents.xcworkspacedata +build +Resources/Settings.bundle/Root.plist \ No newline at end of file diff --git a/Solution/Resources/Icon.png b/Solution/Resources/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e139f65245549122c8551cc152675dcfb59c97c2 GIT binary patch literal 3536 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 A`2YX_ literal 0 HcmV?d00001 diff --git a/Solution/TemperatureCalculator.xcodeproj/project.pbxproj b/Solution/TemperatureCalculator.xcodeproj/project.pbxproj new file mode 100644 index 0000000..461249b --- /dev/null +++ b/Solution/TemperatureCalculator.xcodeproj/project.pbxproj @@ -0,0 +1,299 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 3748D3B81599CC60007617B8 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 3748D3B61599CC60007617B8 /* Icon.png */; }; + 3748D3B91599CC60007617B8 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3748D3B71599CC60007617B8 /* Icon@2x.png */; }; + 37A1F5021599BA2700FCABE7 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37A1F5011599BA2700FCABE7 /* UIKit.framework */; }; + 37A1F5041599BA2700FCABE7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37A1F5031599BA2700FCABE7 /* Foundation.framework */; }; + 37A1F5061599BA2700FCABE7 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37A1F5051599BA2700FCABE7 /* CoreGraphics.framework */; }; + 37A1F50C1599BA2700FCABE7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 37A1F50A1599BA2700FCABE7 /* InfoPlist.strings */; }; + 37A1F50E1599BA2700FCABE7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 37A1F50D1599BA2700FCABE7 /* main.m */; }; + 37A1F5121599BA2700FCABE7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 37A1F5111599BA2700FCABE7 /* AppDelegate.m */; }; + 37A1F5151599BA2700FCABE7 /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 37A1F5131599BA2700FCABE7 /* MainStoryboard.storyboard */; }; + 37B5BD561599BF9A009C45A5 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 37B5BD551599BF9A009C45A5 /* ViewController.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 3748D3B61599CC60007617B8 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = Resources/Icon.png; sourceTree = ""; }; + 3748D3B71599CC60007617B8 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon@2x.png"; path = "Resources/Icon@2x.png"; sourceTree = ""; }; + 37A1F4FD1599BA2700FCABE7 /* TemperatureCalculator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TemperatureCalculator.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 37A1F5011599BA2700FCABE7 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 37A1F5031599BA2700FCABE7 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 37A1F5051599BA2700FCABE7 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 37A1F5091599BA2700FCABE7 /* TemperatureCalculator-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "TemperatureCalculator-Info.plist"; sourceTree = ""; }; + 37A1F50B1599BA2700FCABE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 37A1F50D1599BA2700FCABE7 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 37A1F50F1599BA2700FCABE7 /* TemperatureCalculator-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TemperatureCalculator-Prefix.pch"; sourceTree = ""; }; + 37A1F5101599BA2700FCABE7 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 37A1F5111599BA2700FCABE7 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 37A1F5141599BA2700FCABE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard.storyboard; sourceTree = ""; }; + 37B5BD541599BF9A009C45A5 /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 37B5BD551599BF9A009C45A5 /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 37A1F4FA1599BA2700FCABE7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 37A1F5021599BA2700FCABE7 /* UIKit.framework in Frameworks */, + 37A1F5041599BA2700FCABE7 /* Foundation.framework in Frameworks */, + 37A1F5061599BA2700FCABE7 /* CoreGraphics.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 37A1F4F21599BA2700FCABE7 = { + isa = PBXGroup; + children = ( + 37A1F5071599BA2700FCABE7 /* TemperatureCalculator */, + 37A1F5001599BA2700FCABE7 /* Frameworks */, + 37A1F4FE1599BA2700FCABE7 /* Products */, + ); + sourceTree = ""; + }; + 37A1F4FE1599BA2700FCABE7 /* Products */ = { + isa = PBXGroup; + children = ( + 37A1F4FD1599BA2700FCABE7 /* TemperatureCalculator.app */, + ); + name = Products; + sourceTree = ""; + }; + 37A1F5001599BA2700FCABE7 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 37A1F5011599BA2700FCABE7 /* UIKit.framework */, + 37A1F5031599BA2700FCABE7 /* Foundation.framework */, + 37A1F5051599BA2700FCABE7 /* CoreGraphics.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 37A1F5071599BA2700FCABE7 /* TemperatureCalculator */ = { + isa = PBXGroup; + children = ( + 37A1F5101599BA2700FCABE7 /* AppDelegate.h */, + 37A1F5111599BA2700FCABE7 /* AppDelegate.m */, + 37A1F5131599BA2700FCABE7 /* MainStoryboard.storyboard */, + 37B5BD541599BF9A009C45A5 /* ViewController.h */, + 37B5BD551599BF9A009C45A5 /* ViewController.m */, + 37A1F51E1599BA5500FCABE7 /* Resources */, + 37A1F5081599BA2700FCABE7 /* Supporting Files */, + ); + path = TemperatureCalculator; + sourceTree = ""; + }; + 37A1F5081599BA2700FCABE7 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 37A1F5091599BA2700FCABE7 /* TemperatureCalculator-Info.plist */, + 37A1F50A1599BA2700FCABE7 /* InfoPlist.strings */, + 37A1F50D1599BA2700FCABE7 /* main.m */, + 37A1F50F1599BA2700FCABE7 /* TemperatureCalculator-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 37A1F51E1599BA5500FCABE7 /* Resources */ = { + isa = PBXGroup; + children = ( + 3748D3B61599CC60007617B8 /* Icon.png */, + 3748D3B71599CC60007617B8 /* Icon@2x.png */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 37A1F4FC1599BA2700FCABE7 /* TemperatureCalculator */ = { + isa = PBXNativeTarget; + buildConfigurationList = 37A1F51B1599BA2700FCABE7 /* Build configuration list for PBXNativeTarget "TemperatureCalculator" */; + buildPhases = ( + 37A1F4F91599BA2700FCABE7 /* Sources */, + 37A1F4FA1599BA2700FCABE7 /* Frameworks */, + 37A1F4FB1599BA2700FCABE7 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TemperatureCalculator; + productName = TemperatureCalculator; + productReference = 37A1F4FD1599BA2700FCABE7 /* TemperatureCalculator.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 37A1F4F41599BA2700FCABE7 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0430; + }; + buildConfigurationList = 37A1F4F71599BA2700FCABE7 /* Build configuration list for PBXProject "TemperatureCalculator" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 37A1F4F21599BA2700FCABE7; + productRefGroup = 37A1F4FE1599BA2700FCABE7 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 37A1F4FC1599BA2700FCABE7 /* TemperatureCalculator */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 37A1F4FB1599BA2700FCABE7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 37A1F50C1599BA2700FCABE7 /* InfoPlist.strings in Resources */, + 37A1F5151599BA2700FCABE7 /* MainStoryboard.storyboard in Resources */, + 3748D3B81599CC60007617B8 /* Icon.png in Resources */, + 3748D3B91599CC60007617B8 /* Icon@2x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 37A1F4F91599BA2700FCABE7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 37A1F50E1599BA2700FCABE7 /* main.m in Sources */, + 37A1F5121599BA2700FCABE7 /* AppDelegate.m in Sources */, + 37B5BD561599BF9A009C45A5 /* ViewController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 37A1F50A1599BA2700FCABE7 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 37A1F50B1599BA2700FCABE7 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 37A1F5131599BA2700FCABE7 /* MainStoryboard.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 37A1F5141599BA2700FCABE7 /* en */, + ); + name = MainStoryboard.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 37A1F5191599BA2700FCABE7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 37A1F51A1599BA2700FCABE7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 37A1F51C1599BA2700FCABE7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "TemperatureCalculator/TemperatureCalculator-Prefix.pch"; + INFOPLIST_FILE = "TemperatureCalculator/TemperatureCalculator-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 37A1F51D1599BA2700FCABE7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "TemperatureCalculator/TemperatureCalculator-Prefix.pch"; + INFOPLIST_FILE = "TemperatureCalculator/TemperatureCalculator-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 37A1F4F71599BA2700FCABE7 /* Build configuration list for PBXProject "TemperatureCalculator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 37A1F5191599BA2700FCABE7 /* Debug */, + 37A1F51A1599BA2700FCABE7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 37A1F51B1599BA2700FCABE7 /* Build configuration list for PBXNativeTarget "TemperatureCalculator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 37A1F51C1599BA2700FCABE7 /* Debug */, + 37A1F51D1599BA2700FCABE7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 37A1F4F41599BA2700FCABE7 /* Project object */; +} diff --git a/Solution/TemperatureCalculator/AppDelegate.h b/Solution/TemperatureCalculator/AppDelegate.h new file mode 100644 index 0000000..a5a8b38 --- /dev/null +++ b/Solution/TemperatureCalculator/AppDelegate.h @@ -0,0 +1,7 @@ +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/Solution/TemperatureCalculator/AppDelegate.m b/Solution/TemperatureCalculator/AppDelegate.m new file mode 100644 index 0000000..28c8690 --- /dev/null +++ b/Solution/TemperatureCalculator/AppDelegate.m @@ -0,0 +1,7 @@ +#import "AppDelegate.h" + +@implementation AppDelegate + +@synthesize window = _window; + +@end diff --git a/Solution/TemperatureCalculator/TemperatureCalculator-Info.plist b/Solution/TemperatureCalculator/TemperatureCalculator-Info.plist new file mode 100644 index 0000000..e4b98bf --- /dev/null +++ b/Solution/TemperatureCalculator/TemperatureCalculator-Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + Calc + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIcons + + CFBundlePrimaryIcon + + CFBundleIconFiles + + Icon.png + Icon@2x.png + + + + CFBundleIdentifier + com.shinydevelopment.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIMainStoryboardFile + MainStoryboard + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Solution/TemperatureCalculator/TemperatureCalculator-Prefix.pch b/Solution/TemperatureCalculator/TemperatureCalculator-Prefix.pch new file mode 100644 index 0000000..372962d --- /dev/null +++ b/Solution/TemperatureCalculator/TemperatureCalculator-Prefix.pch @@ -0,0 +1,14 @@ +// +// Prefix header for all source files of the 'TemperatureCalculator' target in the 'TemperatureCalculator' project +// + +#import + +#ifndef __IPHONE_5_0 +#warning "This project uses features only available in iOS SDK 5.0 and later." +#endif + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/Solution/TemperatureCalculator/ViewController.h b/Solution/TemperatureCalculator/ViewController.h new file mode 100644 index 0000000..8967094 --- /dev/null +++ b/Solution/TemperatureCalculator/ViewController.h @@ -0,0 +1,5 @@ +#import + +@interface ViewController : UIViewController + +@end diff --git a/Solution/TemperatureCalculator/ViewController.m b/Solution/TemperatureCalculator/ViewController.m new file mode 100644 index 0000000..aa49960 --- /dev/null +++ b/Solution/TemperatureCalculator/ViewController.m @@ -0,0 +1,48 @@ +#import "ViewController.h" + +@interface ViewController () +@property (nonatomic, retain) IBOutlet UITextField *fahrenheitTextField; +@property (nonatomic, retain) IBOutlet UILabel *celsiusLabel; +@end + +@implementation ViewController + +@synthesize fahrenheitTextField = _fahrenheitTextField; +@synthesize celsiusLabel = _celsiusLabel; + +#pragma mark Temperature conversion and formatting helpers +- (double)celsiusFromFahrenheit:(double)fahrenheit +{ + // Convert a value in fahrenheit to celsius + return (((fahrenheit - 32) / 9) * 5); +} + +- (NSString *)formattedCelsiusString:(double)celsius +{ + // Convert the floating point value to a string and add ºC to the end + return [NSString stringWithFormat:@"%.1fºC", celsius]; +} + +#pragma mark Actions +- (IBAction)convertButtonTapped +{ + // Dismiss the keyboard from the screen + [self.fahrenheitTextField resignFirstResponder]; + + // Get the user entered text from the text field + NSString *fahrenheitText = self.fahrenheitTextField.text; + + // Convert the string to a floating point value + double fahrenheit = [fahrenheitText doubleValue]; + + // Convert fahrenheit to celsius + double celsius = [self celsiusFromFahrenheit:fahrenheit]; + + // Convert the celsius value to a string ready for display + NSString *celsiusText = [self formattedCelsiusString:celsius]; + + // Set the label to show the updated text + self.celsiusLabel.text = celsiusText; +} + +@end diff --git a/Solution/TemperatureCalculator/en.lproj/InfoPlist.strings b/Solution/TemperatureCalculator/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/Solution/TemperatureCalculator/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Solution/TemperatureCalculator/en.lproj/MainStoryboard.storyboard b/Solution/TemperatureCalculator/en.lproj/MainStoryboard.storyboard new file mode 100644 index 0000000..3dee865 --- /dev/null +++ b/Solution/TemperatureCalculator/en.lproj/MainStoryboard.storyboard @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Solution/TemperatureCalculator/main.m b/Solution/TemperatureCalculator/main.m new file mode 100644 index 0000000..0d7d5ed --- /dev/null +++ b/Solution/TemperatureCalculator/main.m @@ -0,0 +1,18 @@ +// +// main.m +// TemperatureCalculator +// +// Created by Greg Spiers on 26/06/2012. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import + +#import "AppDelegate.h" + +int main(int argc, char *argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/Template/Resources/Icon.png b/Template/Resources/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e139f65245549122c8551cc152675dcfb59c97c2 GIT binary patch literal 3536 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 A`2YX_ literal 0 HcmV?d00001 diff --git a/Template/TemperatureCalculator.xcodeproj/project.pbxproj b/Template/TemperatureCalculator.xcodeproj/project.pbxproj new file mode 100644 index 0000000..461249b --- /dev/null +++ b/Template/TemperatureCalculator.xcodeproj/project.pbxproj @@ -0,0 +1,299 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 3748D3B81599CC60007617B8 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 3748D3B61599CC60007617B8 /* Icon.png */; }; + 3748D3B91599CC60007617B8 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3748D3B71599CC60007617B8 /* Icon@2x.png */; }; + 37A1F5021599BA2700FCABE7 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37A1F5011599BA2700FCABE7 /* UIKit.framework */; }; + 37A1F5041599BA2700FCABE7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37A1F5031599BA2700FCABE7 /* Foundation.framework */; }; + 37A1F5061599BA2700FCABE7 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37A1F5051599BA2700FCABE7 /* CoreGraphics.framework */; }; + 37A1F50C1599BA2700FCABE7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 37A1F50A1599BA2700FCABE7 /* InfoPlist.strings */; }; + 37A1F50E1599BA2700FCABE7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 37A1F50D1599BA2700FCABE7 /* main.m */; }; + 37A1F5121599BA2700FCABE7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 37A1F5111599BA2700FCABE7 /* AppDelegate.m */; }; + 37A1F5151599BA2700FCABE7 /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 37A1F5131599BA2700FCABE7 /* MainStoryboard.storyboard */; }; + 37B5BD561599BF9A009C45A5 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 37B5BD551599BF9A009C45A5 /* ViewController.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 3748D3B61599CC60007617B8 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = Resources/Icon.png; sourceTree = ""; }; + 3748D3B71599CC60007617B8 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon@2x.png"; path = "Resources/Icon@2x.png"; sourceTree = ""; }; + 37A1F4FD1599BA2700FCABE7 /* TemperatureCalculator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TemperatureCalculator.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 37A1F5011599BA2700FCABE7 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 37A1F5031599BA2700FCABE7 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 37A1F5051599BA2700FCABE7 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 37A1F5091599BA2700FCABE7 /* TemperatureCalculator-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "TemperatureCalculator-Info.plist"; sourceTree = ""; }; + 37A1F50B1599BA2700FCABE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 37A1F50D1599BA2700FCABE7 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 37A1F50F1599BA2700FCABE7 /* TemperatureCalculator-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TemperatureCalculator-Prefix.pch"; sourceTree = ""; }; + 37A1F5101599BA2700FCABE7 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 37A1F5111599BA2700FCABE7 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 37A1F5141599BA2700FCABE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard.storyboard; sourceTree = ""; }; + 37B5BD541599BF9A009C45A5 /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 37B5BD551599BF9A009C45A5 /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 37A1F4FA1599BA2700FCABE7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 37A1F5021599BA2700FCABE7 /* UIKit.framework in Frameworks */, + 37A1F5041599BA2700FCABE7 /* Foundation.framework in Frameworks */, + 37A1F5061599BA2700FCABE7 /* CoreGraphics.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 37A1F4F21599BA2700FCABE7 = { + isa = PBXGroup; + children = ( + 37A1F5071599BA2700FCABE7 /* TemperatureCalculator */, + 37A1F5001599BA2700FCABE7 /* Frameworks */, + 37A1F4FE1599BA2700FCABE7 /* Products */, + ); + sourceTree = ""; + }; + 37A1F4FE1599BA2700FCABE7 /* Products */ = { + isa = PBXGroup; + children = ( + 37A1F4FD1599BA2700FCABE7 /* TemperatureCalculator.app */, + ); + name = Products; + sourceTree = ""; + }; + 37A1F5001599BA2700FCABE7 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 37A1F5011599BA2700FCABE7 /* UIKit.framework */, + 37A1F5031599BA2700FCABE7 /* Foundation.framework */, + 37A1F5051599BA2700FCABE7 /* CoreGraphics.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 37A1F5071599BA2700FCABE7 /* TemperatureCalculator */ = { + isa = PBXGroup; + children = ( + 37A1F5101599BA2700FCABE7 /* AppDelegate.h */, + 37A1F5111599BA2700FCABE7 /* AppDelegate.m */, + 37A1F5131599BA2700FCABE7 /* MainStoryboard.storyboard */, + 37B5BD541599BF9A009C45A5 /* ViewController.h */, + 37B5BD551599BF9A009C45A5 /* ViewController.m */, + 37A1F51E1599BA5500FCABE7 /* Resources */, + 37A1F5081599BA2700FCABE7 /* Supporting Files */, + ); + path = TemperatureCalculator; + sourceTree = ""; + }; + 37A1F5081599BA2700FCABE7 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 37A1F5091599BA2700FCABE7 /* TemperatureCalculator-Info.plist */, + 37A1F50A1599BA2700FCABE7 /* InfoPlist.strings */, + 37A1F50D1599BA2700FCABE7 /* main.m */, + 37A1F50F1599BA2700FCABE7 /* TemperatureCalculator-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 37A1F51E1599BA5500FCABE7 /* Resources */ = { + isa = PBXGroup; + children = ( + 3748D3B61599CC60007617B8 /* Icon.png */, + 3748D3B71599CC60007617B8 /* Icon@2x.png */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 37A1F4FC1599BA2700FCABE7 /* TemperatureCalculator */ = { + isa = PBXNativeTarget; + buildConfigurationList = 37A1F51B1599BA2700FCABE7 /* Build configuration list for PBXNativeTarget "TemperatureCalculator" */; + buildPhases = ( + 37A1F4F91599BA2700FCABE7 /* Sources */, + 37A1F4FA1599BA2700FCABE7 /* Frameworks */, + 37A1F4FB1599BA2700FCABE7 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TemperatureCalculator; + productName = TemperatureCalculator; + productReference = 37A1F4FD1599BA2700FCABE7 /* TemperatureCalculator.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 37A1F4F41599BA2700FCABE7 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0430; + }; + buildConfigurationList = 37A1F4F71599BA2700FCABE7 /* Build configuration list for PBXProject "TemperatureCalculator" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 37A1F4F21599BA2700FCABE7; + productRefGroup = 37A1F4FE1599BA2700FCABE7 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 37A1F4FC1599BA2700FCABE7 /* TemperatureCalculator */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 37A1F4FB1599BA2700FCABE7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 37A1F50C1599BA2700FCABE7 /* InfoPlist.strings in Resources */, + 37A1F5151599BA2700FCABE7 /* MainStoryboard.storyboard in Resources */, + 3748D3B81599CC60007617B8 /* Icon.png in Resources */, + 3748D3B91599CC60007617B8 /* Icon@2x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 37A1F4F91599BA2700FCABE7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 37A1F50E1599BA2700FCABE7 /* main.m in Sources */, + 37A1F5121599BA2700FCABE7 /* AppDelegate.m in Sources */, + 37B5BD561599BF9A009C45A5 /* ViewController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 37A1F50A1599BA2700FCABE7 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 37A1F50B1599BA2700FCABE7 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 37A1F5131599BA2700FCABE7 /* MainStoryboard.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 37A1F5141599BA2700FCABE7 /* en */, + ); + name = MainStoryboard.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 37A1F5191599BA2700FCABE7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 37A1F51A1599BA2700FCABE7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 37A1F51C1599BA2700FCABE7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "TemperatureCalculator/TemperatureCalculator-Prefix.pch"; + INFOPLIST_FILE = "TemperatureCalculator/TemperatureCalculator-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 37A1F51D1599BA2700FCABE7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "TemperatureCalculator/TemperatureCalculator-Prefix.pch"; + INFOPLIST_FILE = "TemperatureCalculator/TemperatureCalculator-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 37A1F4F71599BA2700FCABE7 /* Build configuration list for PBXProject "TemperatureCalculator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 37A1F5191599BA2700FCABE7 /* Debug */, + 37A1F51A1599BA2700FCABE7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 37A1F51B1599BA2700FCABE7 /* Build configuration list for PBXNativeTarget "TemperatureCalculator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 37A1F51C1599BA2700FCABE7 /* Debug */, + 37A1F51D1599BA2700FCABE7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 37A1F4F41599BA2700FCABE7 /* Project object */; +} diff --git a/Template/TemperatureCalculator/AppDelegate.h b/Template/TemperatureCalculator/AppDelegate.h new file mode 100644 index 0000000..a5a8b38 --- /dev/null +++ b/Template/TemperatureCalculator/AppDelegate.h @@ -0,0 +1,7 @@ +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/Template/TemperatureCalculator/AppDelegate.m b/Template/TemperatureCalculator/AppDelegate.m new file mode 100644 index 0000000..28c8690 --- /dev/null +++ b/Template/TemperatureCalculator/AppDelegate.m @@ -0,0 +1,7 @@ +#import "AppDelegate.h" + +@implementation AppDelegate + +@synthesize window = _window; + +@end diff --git a/Template/TemperatureCalculator/TemperatureCalculator-Info.plist b/Template/TemperatureCalculator/TemperatureCalculator-Info.plist new file mode 100644 index 0000000..e4b98bf --- /dev/null +++ b/Template/TemperatureCalculator/TemperatureCalculator-Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + Calc + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIcons + + CFBundlePrimaryIcon + + CFBundleIconFiles + + Icon.png + Icon@2x.png + + + + CFBundleIdentifier + com.shinydevelopment.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIMainStoryboardFile + MainStoryboard + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Template/TemperatureCalculator/TemperatureCalculator-Prefix.pch b/Template/TemperatureCalculator/TemperatureCalculator-Prefix.pch new file mode 100644 index 0000000..372962d --- /dev/null +++ b/Template/TemperatureCalculator/TemperatureCalculator-Prefix.pch @@ -0,0 +1,14 @@ +// +// Prefix header for all source files of the 'TemperatureCalculator' target in the 'TemperatureCalculator' project +// + +#import + +#ifndef __IPHONE_5_0 +#warning "This project uses features only available in iOS SDK 5.0 and later." +#endif + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/Template/TemperatureCalculator/ViewController.h b/Template/TemperatureCalculator/ViewController.h new file mode 100644 index 0000000..8967094 --- /dev/null +++ b/Template/TemperatureCalculator/ViewController.h @@ -0,0 +1,5 @@ +#import + +@interface ViewController : UIViewController + +@end diff --git a/Template/TemperatureCalculator/ViewController.m b/Template/TemperatureCalculator/ViewController.m new file mode 100644 index 0000000..db50fc8 --- /dev/null +++ b/Template/TemperatureCalculator/ViewController.m @@ -0,0 +1,34 @@ +#import "ViewController.h" + +@interface ViewController () +@property (nonatomic, retain) IBOutlet UITextField *fahrenheitTextField; +@property (nonatomic, retain) IBOutlet UILabel *celsiusLabel; +@end + +@implementation ViewController + +@synthesize fahrenheitTextField = _fahrenheitTextField; +@synthesize celsiusLabel = _celsiusLabel; + +#pragma mark Temperature conversion and formatting helpers +- (double)celsiusFromFahrenheit:(double)fahrenheit +{ + // Convert a value in fahrenheit to celsius + return (((fahrenheit - 32) / 9) * 5); +} + +- (NSString *)formattedCelsiusString:(double)celsius +{ + // Convert the floating point value to a string and add ºC to the end + return [NSString stringWithFormat:@"%.1fºC", celsius]; +} + +#pragma mark Actions +- (IBAction)convertButtonTapped +{ + // --------------------- // + // INSERT YOUR CODE HERE // + // --------------------- // +} + +@end diff --git a/Template/TemperatureCalculator/en.lproj/InfoPlist.strings b/Template/TemperatureCalculator/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/Template/TemperatureCalculator/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Template/TemperatureCalculator/en.lproj/MainStoryboard.storyboard b/Template/TemperatureCalculator/en.lproj/MainStoryboard.storyboard new file mode 100644 index 0000000..f209391 --- /dev/null +++ b/Template/TemperatureCalculator/en.lproj/MainStoryboard.storyboard @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Template/TemperatureCalculator/main.m b/Template/TemperatureCalculator/main.m new file mode 100644 index 0000000..0d7d5ed --- /dev/null +++ b/Template/TemperatureCalculator/main.m @@ -0,0 +1,18 @@ +// +// main.m +// TemperatureCalculator +// +// Created by Greg Spiers on 26/06/2012. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import + +#import "AppDelegate.h" + +int main(int argc, char *argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +}