From de25b9292bc7e40187e9e732b681580064ad0152 Mon Sep 17 00:00:00 2001 From: hendoware Date: Thu, 11 Oct 2018 15:32:27 -0400 Subject: [PATCH 1/7] first comment --- .../JSONStudents.xcodeproj/project.pbxproj | 343 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 10905 bytes .../xcschemes/xcschememanagement.plist | 14 + JSONStudents/JSONStudents/AppDelegate.swift | 46 +++ .../AppIcon.appiconset/Contents.json | 98 +++++ .../Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ .../JSONStudents/Base.lproj/Main.storyboard | 24 ++ JSONStudents/JSONStudents/Info.plist | 45 +++ JSONStudents/JSONStudents/Student.swift | 9 + .../JSONStudents/ViewController.swift | 20 + 13 files changed, 645 insertions(+) create mode 100644 JSONStudents/JSONStudents.xcodeproj/project.pbxproj create mode 100644 JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 JSONStudents/JSONStudents.xcodeproj/xcuserdata/seanhendrix.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 JSONStudents/JSONStudents/AppDelegate.swift create mode 100644 JSONStudents/JSONStudents/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 JSONStudents/JSONStudents/Assets.xcassets/Contents.json create mode 100644 JSONStudents/JSONStudents/Base.lproj/LaunchScreen.storyboard create mode 100644 JSONStudents/JSONStudents/Base.lproj/Main.storyboard create mode 100644 JSONStudents/JSONStudents/Info.plist create mode 100644 JSONStudents/JSONStudents/Student.swift create mode 100644 JSONStudents/JSONStudents/ViewController.swift diff --git a/JSONStudents/JSONStudents.xcodeproj/project.pbxproj b/JSONStudents/JSONStudents.xcodeproj/project.pbxproj new file mode 100644 index 0000000..7f7ebfa --- /dev/null +++ b/JSONStudents/JSONStudents.xcodeproj/project.pbxproj @@ -0,0 +1,343 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 7B930B11216FDA99001EFAEB /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B930B10216FDA99001EFAEB /* AppDelegate.swift */; }; + 7B930B13216FDA99001EFAEB /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B930B12216FDA99001EFAEB /* ViewController.swift */; }; + 7B930B16216FDA99001EFAEB /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7B930B14216FDA99001EFAEB /* Main.storyboard */; }; + 7B930B18216FDA9B001EFAEB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7B930B17216FDA9B001EFAEB /* Assets.xcassets */; }; + 7B930B1B216FDA9B001EFAEB /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7B930B19216FDA9B001EFAEB /* LaunchScreen.storyboard */; }; + 7B930B23216FDC15001EFAEB /* Student.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B930B22216FDC15001EFAEB /* Student.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 7B930B0D216FDA99001EFAEB /* JSONStudents.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JSONStudents.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 7B930B10216FDA99001EFAEB /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7B930B12216FDA99001EFAEB /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 7B930B15216FDA99001EFAEB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 7B930B17216FDA9B001EFAEB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 7B930B1A216FDA9B001EFAEB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 7B930B1C216FDA9B001EFAEB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 7B930B22216FDC15001EFAEB /* Student.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Student.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 7B930B0A216FDA99001EFAEB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 7B930B04216FDA99001EFAEB = { + isa = PBXGroup; + children = ( + 7B930B0F216FDA99001EFAEB /* JSONStudents */, + 7B930B0E216FDA99001EFAEB /* Products */, + ); + sourceTree = ""; + }; + 7B930B0E216FDA99001EFAEB /* Products */ = { + isa = PBXGroup; + children = ( + 7B930B0D216FDA99001EFAEB /* JSONStudents.app */, + ); + name = Products; + sourceTree = ""; + }; + 7B930B0F216FDA99001EFAEB /* JSONStudents */ = { + isa = PBXGroup; + children = ( + 7B930B10216FDA99001EFAEB /* AppDelegate.swift */, + 7B930B12216FDA99001EFAEB /* ViewController.swift */, + 7B930B14216FDA99001EFAEB /* Main.storyboard */, + 7B930B22216FDC15001EFAEB /* Student.swift */, + 7B930B17216FDA9B001EFAEB /* Assets.xcassets */, + 7B930B19216FDA9B001EFAEB /* LaunchScreen.storyboard */, + 7B930B1C216FDA9B001EFAEB /* Info.plist */, + ); + path = JSONStudents; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7B930B0C216FDA99001EFAEB /* JSONStudents */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7B930B1F216FDA9B001EFAEB /* Build configuration list for PBXNativeTarget "JSONStudents" */; + buildPhases = ( + 7B930B09216FDA99001EFAEB /* Sources */, + 7B930B0A216FDA99001EFAEB /* Frameworks */, + 7B930B0B216FDA99001EFAEB /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = JSONStudents; + productName = JSONStudents; + productReference = 7B930B0D216FDA99001EFAEB /* JSONStudents.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7B930B05216FDA99001EFAEB /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1000; + LastUpgradeCheck = 1000; + ORGANIZATIONNAME = "Sean Hendrix"; + TargetAttributes = { + 7B930B0C216FDA99001EFAEB = { + CreatedOnToolsVersion = 10.0; + }; + }; + }; + buildConfigurationList = 7B930B08216FDA99001EFAEB /* Build configuration list for PBXProject "JSONStudents" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 7B930B04216FDA99001EFAEB; + productRefGroup = 7B930B0E216FDA99001EFAEB /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7B930B0C216FDA99001EFAEB /* JSONStudents */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7B930B0B216FDA99001EFAEB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7B930B1B216FDA9B001EFAEB /* LaunchScreen.storyboard in Resources */, + 7B930B18216FDA9B001EFAEB /* Assets.xcassets in Resources */, + 7B930B16216FDA99001EFAEB /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7B930B09216FDA99001EFAEB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7B930B13216FDA99001EFAEB /* ViewController.swift in Sources */, + 7B930B23216FDC15001EFAEB /* Student.swift in Sources */, + 7B930B11216FDA99001EFAEB /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 7B930B14216FDA99001EFAEB /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 7B930B15216FDA99001EFAEB /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 7B930B19216FDA9B001EFAEB /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 7B930B1A216FDA9B001EFAEB /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 7B930B1D216FDA9B001EFAEB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 7B930B1E216FDA9B001EFAEB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 7B930B20216FDA9B001EFAEB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = JSONStudents/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.hendoware.JSONStudents; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7B930B21216FDA9B001EFAEB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = JSONStudents/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.hendoware.JSONStudents; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7B930B08216FDA99001EFAEB /* Build configuration list for PBXProject "JSONStudents" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7B930B1D216FDA9B001EFAEB /* Debug */, + 7B930B1E216FDA9B001EFAEB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7B930B1F216FDA9B001EFAEB /* Build configuration list for PBXNativeTarget "JSONStudents" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7B930B20216FDA9B001EFAEB /* Debug */, + 7B930B21216FDA9B001EFAEB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7B930B05216FDA99001EFAEB /* Project object */; +} diff --git a/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..8e5e72d --- /dev/null +++ b/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate b/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..fb6241b56a3abdd5a33fc7606f9ce25559bccfdc GIT binary patch literal 10905 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 + + + + SchemeUserState + + JSONStudents.xcscheme + + orderHint + 0 + + + + diff --git a/JSONStudents/JSONStudents/AppDelegate.swift b/JSONStudents/JSONStudents/AppDelegate.swift new file mode 100644 index 0000000..22a9dc6 --- /dev/null +++ b/JSONStudents/JSONStudents/AppDelegate.swift @@ -0,0 +1,46 @@ +// +// AppDelegate.swift +// JSONStudents +// +// Created by Sean Hendrix on 10/11/18. +// Copyright © 2018 Sean Hendrix. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + func applicationWillResignActive(_ application: UIApplication) { + // 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 invalidate graphics rendering callbacks. Games should use this method to pause the game. + } + + func applicationDidEnterBackground(_ application: UIApplication) { + // 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. + } + + func applicationWillEnterForeground(_ application: UIApplication) { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. + } + + func applicationDidBecomeActive(_ application: UIApplication) { + // 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. + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + +} + diff --git a/JSONStudents/JSONStudents/Assets.xcassets/AppIcon.appiconset/Contents.json b/JSONStudents/JSONStudents/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/JSONStudents/JSONStudents/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/JSONStudents/JSONStudents/Assets.xcassets/Contents.json b/JSONStudents/JSONStudents/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/JSONStudents/JSONStudents/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/JSONStudents/JSONStudents/Base.lproj/LaunchScreen.storyboard b/JSONStudents/JSONStudents/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..bfa3612 --- /dev/null +++ b/JSONStudents/JSONStudents/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JSONStudents/JSONStudents/Base.lproj/Main.storyboard b/JSONStudents/JSONStudents/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f1bcf38 --- /dev/null +++ b/JSONStudents/JSONStudents/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JSONStudents/JSONStudents/Info.plist b/JSONStudents/JSONStudents/Info.plist new file mode 100644 index 0000000..16be3b6 --- /dev/null +++ b/JSONStudents/JSONStudents/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/JSONStudents/JSONStudents/Student.swift b/JSONStudents/JSONStudents/Student.swift new file mode 100644 index 0000000..bdbf95f --- /dev/null +++ b/JSONStudents/JSONStudents/Student.swift @@ -0,0 +1,9 @@ +import Foundation + +struct Student: CustomStringConvertible, Codable { + + let name: String + let age: Int? + let cohort: String? +} + diff --git a/JSONStudents/JSONStudents/ViewController.swift b/JSONStudents/JSONStudents/ViewController.swift new file mode 100644 index 0000000..b137eab --- /dev/null +++ b/JSONStudents/JSONStudents/ViewController.swift @@ -0,0 +1,20 @@ +// +// ViewController.swift +// JSONStudents +// +// Created by Sean Hendrix on 10/11/18. +// Copyright © 2018 Sean Hendrix. All rights reserved. +// + +import UIKit + +class ViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view, typically from a nib. + } + + +} + From 8c3ce5a4e2e62313926b301bed84c75211895492 Mon Sep 17 00:00:00 2001 From: hendoware Date: Thu, 11 Oct 2018 15:50:05 -0400 Subject: [PATCH 2/7] added studentmanager for filemanager --- .../JSONStudents.xcodeproj/project.pbxproj | 4 +++ .../UserInterfaceState.xcuserstate | Bin 10905 -> 12399 bytes JSONStudents/JSONStudents/Student.swift | 1 + .../JSONStudents/StudentManager.swift | 29 ++++++++++++++++++ 4 files changed, 34 insertions(+) create mode 100644 JSONStudents/JSONStudents/StudentManager.swift diff --git a/JSONStudents/JSONStudents.xcodeproj/project.pbxproj b/JSONStudents/JSONStudents.xcodeproj/project.pbxproj index 7f7ebfa..75d66cb 100644 --- a/JSONStudents/JSONStudents.xcodeproj/project.pbxproj +++ b/JSONStudents/JSONStudents.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 7B930B18216FDA9B001EFAEB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7B930B17216FDA9B001EFAEB /* Assets.xcassets */; }; 7B930B1B216FDA9B001EFAEB /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7B930B19216FDA9B001EFAEB /* LaunchScreen.storyboard */; }; 7B930B23216FDC15001EFAEB /* Student.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B930B22216FDC15001EFAEB /* Student.swift */; }; + 7B930B25216FDD1F001EFAEB /* StudentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B930B24216FDD1F001EFAEB /* StudentManager.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -24,6 +25,7 @@ 7B930B1A216FDA9B001EFAEB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 7B930B1C216FDA9B001EFAEB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7B930B22216FDC15001EFAEB /* Student.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Student.swift; sourceTree = ""; }; + 7B930B24216FDD1F001EFAEB /* StudentManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentManager.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -60,6 +62,7 @@ 7B930B12216FDA99001EFAEB /* ViewController.swift */, 7B930B14216FDA99001EFAEB /* Main.storyboard */, 7B930B22216FDC15001EFAEB /* Student.swift */, + 7B930B24216FDD1F001EFAEB /* StudentManager.swift */, 7B930B17216FDA9B001EFAEB /* Assets.xcassets */, 7B930B19216FDA9B001EFAEB /* LaunchScreen.storyboard */, 7B930B1C216FDA9B001EFAEB /* Info.plist */, @@ -139,6 +142,7 @@ buildActionMask = 2147483647; files = ( 7B930B13216FDA99001EFAEB /* ViewController.swift in Sources */, + 7B930B25216FDD1F001EFAEB /* StudentManager.swift in Sources */, 7B930B23216FDC15001EFAEB /* Student.swift in Sources */, 7B930B11216FDA99001EFAEB /* AppDelegate.swift in Sources */, ); diff --git a/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate b/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate index fb6241b56a3abdd5a33fc7606f9ce25559bccfdc..35ba9eafba7ea74e8417f34cf631e57a026a77be 100644 GIT binary patch delta 7412 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 E4>fw4RsaA1 delta 6155 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 R@ZoHx#dqfW=h^Iz|9`R_DqsKr diff --git a/JSONStudents/JSONStudents/Student.swift b/JSONStudents/JSONStudents/Student.swift index bdbf95f..9b634fb 100644 --- a/JSONStudents/JSONStudents/Student.swift +++ b/JSONStudents/JSONStudents/Student.swift @@ -1,6 +1,7 @@ import Foundation struct Student: CustomStringConvertible, Codable { + var description: String let name: String let age: Int? diff --git a/JSONStudents/JSONStudents/StudentManager.swift b/JSONStudents/JSONStudents/StudentManager.swift new file mode 100644 index 0000000..7f5053e --- /dev/null +++ b/JSONStudents/JSONStudents/StudentManager.swift @@ -0,0 +1,29 @@ +import Foundation + +class StudentManager: NSObject { + var students: [Student] = [] + + let url = URL(fileURLWithPath: NSHomeDirectory()) + .appendingPathComponent("Documents") + .appendingPathComponent("students.json") + + func writeToFile() { + do { + let studentsEncoded = try JSONEncoder().encode(students) + try studentsEncoded.write(to: url) + } catch { + print("Error: \(error)") + } + } + + func readFromFile() { + do { + let data = try Data(contentsOf: url) + let studentsDecoded = try JSONDecoder().decode([Student].self, from: data) + students = studentsDecoded + } catch { + print("Error: \(error)") + } + + } +} From 59376d809c1cd15221605dc4df50c0e0a611c31c Mon Sep 17 00:00:00 2001 From: hendoware Date: Thu, 11 Oct 2018 16:31:41 -0400 Subject: [PATCH 3/7] finished project --- .../UserInterfaceState.xcuserstate | Bin 12399 -> 23525 bytes .../JSONStudents/Base.lproj/Main.storyboard | 114 +++++++++++++++++- JSONStudents/JSONStudents/Student.swift | 11 +- .../JSONStudents/StudentManager.swift | 11 +- .../JSONStudents/ViewController.swift | 25 +++- 5 files changed, 151 insertions(+), 10 deletions(-) diff --git a/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate b/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate index 35ba9eafba7ea74e8417f34cf631e57a026a77be..6dbd9cda022ccd6651abc8a8c2a9196163ecbb59 100644 GIT binary patch literal 23525 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 diff --git a/JSONStudents/JSONStudents/Base.lproj/Main.storyboard b/JSONStudents/JSONStudents/Base.lproj/Main.storyboard index f1bcf38..4385ec0 100644 --- a/JSONStudents/JSONStudents/Base.lproj/Main.storyboard +++ b/JSONStudents/JSONStudents/Base.lproj/Main.storyboard @@ -1,7 +1,10 @@ - + + + + - + @@ -9,16 +12,121 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JSONStudents/JSONStudents/Student.swift b/JSONStudents/JSONStudents/Student.swift index 9b634fb..7fd3472 100644 --- a/JSONStudents/JSONStudents/Student.swift +++ b/JSONStudents/JSONStudents/Student.swift @@ -1,10 +1,19 @@ import Foundation struct Student: CustomStringConvertible, Codable { - var description: String + var description: String { + // return "\(name), \(age), \(cohort)" + var result = "\(name), Cohort: \(cohort ?? "[Unknown cohort]")" + if let age = age { + result += ", \(age) years old" + } + return result + } let name: String let age: Int? let cohort: String? + + } diff --git a/JSONStudents/JSONStudents/StudentManager.swift b/JSONStudents/JSONStudents/StudentManager.swift index 7f5053e..fc663d4 100644 --- a/JSONStudents/JSONStudents/StudentManager.swift +++ b/JSONStudents/JSONStudents/StudentManager.swift @@ -10,7 +10,10 @@ class StudentManager: NSObject { func writeToFile() { do { let studentsEncoded = try JSONEncoder().encode(students) - try studentsEncoded.write(to: url) + if let string = String(data: studentsEncoded, encoding: .utf8) { + print(string) + } + //try studentsEncoded.write(to: url) } catch { print("Error: \(error)") } @@ -26,4 +29,10 @@ class StudentManager: NSObject { } } + + func create(name: String, age: Int?, cohort: String?) { + let student = Student.init(name: name, age: age, cohort: cohort) + students.append(student) + print("decoded") + } } diff --git a/JSONStudents/JSONStudents/ViewController.swift b/JSONStudents/JSONStudents/ViewController.swift index b137eab..e167257 100644 --- a/JSONStudents/JSONStudents/ViewController.swift +++ b/JSONStudents/JSONStudents/ViewController.swift @@ -10,11 +10,26 @@ import UIKit class ViewController: UIViewController { - override func viewDidLoad() { - super.viewDidLoad() - // Do any additional setup after loading the view, typically from a nib. + @IBOutlet weak var nameText: UITextField! + @IBOutlet weak var ageText: UITextField! + @IBOutlet weak var cohortText: UITextField! + var studentManager = StudentManager() + + @IBAction func saveButton(_ sender: Any) { + guard let name = nameText.text else {return} + guard let age = ageText.text else {return} + guard let cohort = cohortText.text else {return} + studentManager.create(name: name, age: Int(age), cohort: cohort) + studentManager.writeToFile() + } + + @IBAction func printButton(_ sender: Any) { + print(studentManager.students) + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + studentManager.readFromFile() } - - } From 3ff02bdc09d0b0fcd5d8a2b96fb39b986fa1914d Mon Sep 17 00:00:00 2001 From: hendoware Date: Thu, 11 Oct 2018 18:18:05 -0400 Subject: [PATCH 4/7] made UI better --- .DS_Store | Bin 0 -> 6148 bytes .../UserInterfaceState.xcuserstate | Bin 23525 -> 24959 bytes .../JSONStudents/Base.lproj/Main.storyboard | 133 +++++++++--------- JSONStudents/JSONStudents/Student.swift | 9 +- .../JSONStudents/StudentManager.swift | 2 +- .../JSONStudents/ViewController.swift | 8 -- 6 files changed, 72 insertions(+), 80 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..417dd020fa8efc1edaa8a1f7bc250d6de51ee061 GIT binary patch literal 6148 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 J1;2|n{tuThLf|ph`3uRihf@MU7}0 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 UA&`V2LW2MNrr>|uZ(-yA17E_Z8vp - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + diff --git a/JSONStudents/JSONStudents/Student.swift b/JSONStudents/JSONStudents/Student.swift index 7fd3472..ab5f2a8 100644 --- a/JSONStudents/JSONStudents/Student.swift +++ b/JSONStudents/JSONStudents/Student.swift @@ -2,18 +2,17 @@ import Foundation struct Student: CustomStringConvertible, Codable { var description: String { - // return "\(name), \(age), \(cohort)" var result = "\(name), Cohort: \(cohort ?? "[Unknown cohort]")" - if let age = age { + if var age = age { + if age > UInt64.max { + age = 1 + } result += ", \(age) years old" } return result } - let name: String let age: Int? let cohort: String? - - } diff --git a/JSONStudents/JSONStudents/StudentManager.swift b/JSONStudents/JSONStudents/StudentManager.swift index fc663d4..406aa59 100644 --- a/JSONStudents/JSONStudents/StudentManager.swift +++ b/JSONStudents/JSONStudents/StudentManager.swift @@ -33,6 +33,6 @@ class StudentManager: NSObject { func create(name: String, age: Int?, cohort: String?) { let student = Student.init(name: name, age: age, cohort: cohort) students.append(student) - print("decoded") + //print("decoded") } } diff --git a/JSONStudents/JSONStudents/ViewController.swift b/JSONStudents/JSONStudents/ViewController.swift index e167257..39d876c 100644 --- a/JSONStudents/JSONStudents/ViewController.swift +++ b/JSONStudents/JSONStudents/ViewController.swift @@ -1,11 +1,3 @@ -// -// ViewController.swift -// JSONStudents -// -// Created by Sean Hendrix on 10/11/18. -// Copyright © 2018 Sean Hendrix. All rights reserved. -// - import UIKit class ViewController: UIViewController { From 138e77bc4f1d8a2c4218de33192698d6505dec87 Mon Sep 17 00:00:00 2001 From: hendoware Date: Thu, 11 Oct 2018 18:26:18 -0400 Subject: [PATCH 5/7] age = 1 if too big no matter what --- .../UserInterfaceState.xcuserstate | Bin 24959 -> 26130 bytes JSONStudents/JSONStudents/Student.swift | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate b/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate index 476c2e70fff4ce2a1db6a7b122ba0f23227f849a..b25ad4ef4edf0515480062e81c9826a03d8e2a4f 100644 GIT binary patch delta 8517 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 delta 7430 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 diff --git a/JSONStudents/JSONStudents/Student.swift b/JSONStudents/JSONStudents/Student.swift index ab5f2a8..0f3df64 100644 --- a/JSONStudents/JSONStudents/Student.swift +++ b/JSONStudents/JSONStudents/Student.swift @@ -4,7 +4,7 @@ struct Student: CustomStringConvertible, Codable { var description: String { var result = "\(name), Cohort: \(cohort ?? "[Unknown cohort]")" if var age = age { - if age > UInt64.max { + if age > 150 { age = 1 } result += ", \(age) years old" From 854995055b7a5c499bd7a9a3af40d14feaf6d052 Mon Sep 17 00:00:00 2001 From: hendoware Date: Thu, 11 Oct 2018 18:58:52 -0400 Subject: [PATCH 6/7] changed nav bar color --- .../UserInterfaceState.xcuserstate | Bin 26130 -> 27112 bytes .../JSONStudents/Base.lproj/Main.storyboard | 2 ++ .../JSONStudents/StudentManager.swift | 8 ++++---- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate b/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate index b25ad4ef4edf0515480062e81c9826a03d8e2a4f..08c9679b5c9a251b5757392104e8741eb3a3b354 100644 GIT binary patch delta 12250 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 bk(I=hbSvpulG2>+Ak_RRDt$5wDpCCpw + @@ -119,6 +120,7 @@ + diff --git a/JSONStudents/JSONStudents/StudentManager.swift b/JSONStudents/JSONStudents/StudentManager.swift index 406aa59..f0dcb3c 100644 --- a/JSONStudents/JSONStudents/StudentManager.swift +++ b/JSONStudents/JSONStudents/StudentManager.swift @@ -10,9 +10,10 @@ class StudentManager: NSObject { func writeToFile() { do { let studentsEncoded = try JSONEncoder().encode(students) - if let string = String(data: studentsEncoded, encoding: .utf8) { - print(string) - } + try studentsEncoded.write(to: url) +// if let string = String(data: studentsEncoded, encoding: .utf8) { +// print(string) +// } //try studentsEncoded.write(to: url) } catch { print("Error: \(error)") @@ -27,7 +28,6 @@ class StudentManager: NSObject { } catch { print("Error: \(error)") } - } func create(name: String, age: Int?, cohort: String?) { From 20015ddac1d77d6a6ad3c0ce5110b8519a981107 Mon Sep 17 00:00:00 2001 From: hendoware Date: Thu, 11 Oct 2018 19:51:53 -0400 Subject: [PATCH 7/7] persistence --- .../UserInterfaceState.xcuserstate | Bin 27112 -> 27552 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate b/JSONStudents/JSONStudents.xcodeproj/project.xcworkspace/xcuserdata/seanhendrix.xcuserdatad/UserInterfaceState.xcuserstate index 08c9679b5c9a251b5757392104e8741eb3a3b354..1eaefd6c7fc7db2206d817ad0e0624ee24efa721 100644 GIT binary patch delta 10998 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 delta 10515 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 DHOm)3