From 934ef6f829e52af642b097ff73d43845d1a531de Mon Sep 17 00:00:00 2001 From: Jerrick Warren Date: Thu, 11 Oct 2018 12:35:17 -0700 Subject: [PATCH 1/6] mode and initial Commit --- .../JSON Students.xcodeproj/project.pbxproj | 345 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 18421 bytes .../xcschemes/xcschememanagement.plist | 14 + JSON Students/JSON Students/AppDelegate.swift | 46 +++ .../AppIcon.appiconset/Contents.json | 98 +++++ .../Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ .../JSON Students/Base.lproj/Main.storyboard | 24 ++ JSON Students/JSON Students/Info.plist | 45 +++ JSON Students/JSON Students/Student.swift | 33 ++ .../JSON Students/ViewController.swift | 20 + 13 files changed, 671 insertions(+) create mode 100644 JSON Students/JSON Students.xcodeproj/project.pbxproj create mode 100644 JSON Students/JSON Students.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 JSON Students/JSON Students.xcodeproj/xcuserdata/jerrickwarren.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 JSON Students/JSON Students/AppDelegate.swift create mode 100644 JSON Students/JSON Students/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 JSON Students/JSON Students/Assets.xcassets/Contents.json create mode 100644 JSON Students/JSON Students/Base.lproj/LaunchScreen.storyboard create mode 100644 JSON Students/JSON Students/Base.lproj/Main.storyboard create mode 100644 JSON Students/JSON Students/Info.plist create mode 100644 JSON Students/JSON Students/Student.swift create mode 100644 JSON Students/JSON Students/ViewController.swift diff --git a/JSON Students/JSON Students.xcodeproj/project.pbxproj b/JSON Students/JSON Students.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0eb1619 --- /dev/null +++ b/JSON Students/JSON Students.xcodeproj/project.pbxproj @@ -0,0 +1,345 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 47F6BED9216FDC9E007A370E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F6BED8216FDC9E007A370E /* AppDelegate.swift */; }; + 47F6BEDB216FDC9E007A370E /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F6BEDA216FDC9E007A370E /* ViewController.swift */; }; + 47F6BEDE216FDC9E007A370E /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 47F6BEDC216FDC9E007A370E /* Main.storyboard */; }; + 47F6BEE0216FDC9F007A370E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 47F6BEDF216FDC9F007A370E /* Assets.xcassets */; }; + 47F6BEE3216FDC9F007A370E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 47F6BEE1216FDC9F007A370E /* LaunchScreen.storyboard */; }; + 47F6BEEB216FDCCC007A370E /* Student.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F6BEEA216FDCCC007A370E /* Student.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 47F6BED5216FDC9E007A370E /* JSON Students.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "JSON Students.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 47F6BED8216FDC9E007A370E /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 47F6BEDA216FDC9E007A370E /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 47F6BEDD216FDC9E007A370E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 47F6BEDF216FDC9F007A370E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 47F6BEE2216FDC9F007A370E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 47F6BEE4216FDC9F007A370E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 47F6BEEA216FDCCC007A370E /* Student.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Student.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 47F6BED2216FDC9E007A370E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 47F6BECC216FDC9E007A370E = { + isa = PBXGroup; + children = ( + 47F6BED7216FDC9E007A370E /* JSON Students */, + 47F6BED6216FDC9E007A370E /* Products */, + ); + sourceTree = ""; + }; + 47F6BED6216FDC9E007A370E /* Products */ = { + isa = PBXGroup; + children = ( + 47F6BED5216FDC9E007A370E /* JSON Students.app */, + ); + name = Products; + sourceTree = ""; + }; + 47F6BED7216FDC9E007A370E /* JSON Students */ = { + isa = PBXGroup; + children = ( + 47F6BED8216FDC9E007A370E /* AppDelegate.swift */, + 47F6BEDA216FDC9E007A370E /* ViewController.swift */, + 47F6BEDC216FDC9E007A370E /* Main.storyboard */, + 47F6BEEA216FDCCC007A370E /* Student.swift */, + 47F6BEDF216FDC9F007A370E /* Assets.xcassets */, + 47F6BEE1216FDC9F007A370E /* LaunchScreen.storyboard */, + 47F6BEE4216FDC9F007A370E /* Info.plist */, + ); + path = "JSON Students"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 47F6BED4216FDC9E007A370E /* JSON Students */ = { + isa = PBXNativeTarget; + buildConfigurationList = 47F6BEE7216FDC9F007A370E /* Build configuration list for PBXNativeTarget "JSON Students" */; + buildPhases = ( + 47F6BED1216FDC9E007A370E /* Sources */, + 47F6BED2216FDC9E007A370E /* Frameworks */, + 47F6BED3216FDC9E007A370E /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "JSON Students"; + productName = "JSON Students"; + productReference = 47F6BED5216FDC9E007A370E /* JSON Students.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 47F6BECD216FDC9E007A370E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1000; + LastUpgradeCheck = 1000; + ORGANIZATIONNAME = "Jerrick Warren"; + TargetAttributes = { + 47F6BED4216FDC9E007A370E = { + CreatedOnToolsVersion = 10.0; + }; + }; + }; + buildConfigurationList = 47F6BED0216FDC9E007A370E /* Build configuration list for PBXProject "JSON Students" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 47F6BECC216FDC9E007A370E; + productRefGroup = 47F6BED6216FDC9E007A370E /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 47F6BED4216FDC9E007A370E /* JSON Students */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 47F6BED3216FDC9E007A370E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 47F6BEE3216FDC9F007A370E /* LaunchScreen.storyboard in Resources */, + 47F6BEE0216FDC9F007A370E /* Assets.xcassets in Resources */, + 47F6BEDE216FDC9E007A370E /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 47F6BED1216FDC9E007A370E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 47F6BEDB216FDC9E007A370E /* ViewController.swift in Sources */, + 47F6BEEB216FDCCC007A370E /* Student.swift in Sources */, + 47F6BED9216FDC9E007A370E /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 47F6BEDC216FDC9E007A370E /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 47F6BEDD216FDC9E007A370E /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 47F6BEE1216FDC9F007A370E /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 47F6BEE2216FDC9F007A370E /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 47F6BEE5216FDC9F007A370E /* 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; + }; + 47F6BEE6216FDC9F007A370E /* 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; + }; + 47F6BEE8216FDC9F007A370E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 7JG93VFG2G; + INFOPLIST_FILE = "JSON Students/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.jerrickwarren.JSON-Students"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 47F6BEE9216FDC9F007A370E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 7JG93VFG2G; + INFOPLIST_FILE = "JSON Students/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.jerrickwarren.JSON-Students"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 47F6BED0216FDC9E007A370E /* Build configuration list for PBXProject "JSON Students" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 47F6BEE5216FDC9F007A370E /* Debug */, + 47F6BEE6216FDC9F007A370E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 47F6BEE7216FDC9F007A370E /* Build configuration list for PBXNativeTarget "JSON Students" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 47F6BEE8216FDC9F007A370E /* Debug */, + 47F6BEE9216FDC9F007A370E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 47F6BECD216FDC9E007A370E /* Project object */; +} diff --git a/JSON Students/JSON Students.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/JSON Students/JSON Students.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..b4d493a --- /dev/null +++ b/JSON Students/JSON Students.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..73e2a919125b9c808c0236a388c333e75d828a55 GIT binary patch literal 18421 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 F^gnJTP$&QZ literal 0 HcmV?d00001 diff --git a/JSON Students/JSON Students.xcodeproj/xcuserdata/jerrickwarren.xcuserdatad/xcschemes/xcschememanagement.plist b/JSON Students/JSON Students.xcodeproj/xcuserdata/jerrickwarren.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..5028ac4 --- /dev/null +++ b/JSON Students/JSON Students.xcodeproj/xcuserdata/jerrickwarren.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + JSON Students.xcscheme + + orderHint + 0 + + + + diff --git a/JSON Students/JSON Students/AppDelegate.swift b/JSON Students/JSON Students/AppDelegate.swift new file mode 100644 index 0000000..e394216 --- /dev/null +++ b/JSON Students/JSON Students/AppDelegate.swift @@ -0,0 +1,46 @@ +// +// AppDelegate.swift +// JSON Students +// +// Created by Jerrick Warren on 10/11/18. +// Copyright © 2018 Jerrick Warren. 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/JSON Students/JSON Students/Assets.xcassets/AppIcon.appiconset/Contents.json b/JSON Students/JSON Students/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/JSON Students/JSON Students/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/JSON Students/JSON Students/Assets.xcassets/Contents.json b/JSON Students/JSON Students/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/JSON Students/JSON Students/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/JSON Students/JSON Students/Base.lproj/LaunchScreen.storyboard b/JSON Students/JSON Students/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..bfa3612 --- /dev/null +++ b/JSON Students/JSON Students/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JSON Students/JSON Students/Base.lproj/Main.storyboard b/JSON Students/JSON Students/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f1bcf38 --- /dev/null +++ b/JSON Students/JSON Students/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JSON Students/JSON Students/Info.plist b/JSON Students/JSON Students/Info.plist new file mode 100644 index 0000000..16be3b6 --- /dev/null +++ b/JSON Students/JSON Students/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/JSON Students/JSON Students/Student.swift b/JSON Students/JSON Students/Student.swift new file mode 100644 index 0000000..4897ae1 --- /dev/null +++ b/JSON Students/JSON Students/Student.swift @@ -0,0 +1,33 @@ +// +// Student.swift +// JSON Students +// +// Created by Jerrick Warren on 10/11/18. +// Copyright © 2018 Jerrick Warren. All rights reserved. +// + +import Foundation + +struct Student: CustomStringConvertible, Codable { + // lets conform to the CSC protocol + // lets also do a computed property + var description: String { + // return "\(name), \(age), \(cohort)" + // optional colescing + var result = "\(name), Cohort: \(cohort ?? "[unknown cohort]")" + + // unwrapping the age + if let age = age { + result += ", \(age) Moons old" + } + return result + } + + let name: String + let age: Int? + let cohort: String? + + init(name: String, age: Int? = nil , cohort: String? = nil ) { + (self.name, self.age, self.cohort) = (name, age, cohort) + } +} diff --git a/JSON Students/JSON Students/ViewController.swift b/JSON Students/JSON Students/ViewController.swift new file mode 100644 index 0000000..31ea185 --- /dev/null +++ b/JSON Students/JSON Students/ViewController.swift @@ -0,0 +1,20 @@ +// +// ViewController.swift +// JSON Students +// +// Created by Jerrick Warren on 10/11/18. +// Copyright © 2018 Jerrick Warren. 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 f6d481e6a7cfc243377c477082889334e3684194 Mon Sep 17 00:00:00 2001 From: Jerrick Warren Date: Thu, 11 Oct 2018 12:41:06 -0700 Subject: [PATCH 2/6] initial student manager file --- .../JSON Students.xcodeproj/project.pbxproj | 4 +++ .../UserInterfaceState.xcuserstate | Bin 18421 -> 19039 bytes .../JSON Students/StudentManager.swift | 34 ++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 JSON Students/JSON Students/StudentManager.swift diff --git a/JSON Students/JSON Students.xcodeproj/project.pbxproj b/JSON Students/JSON Students.xcodeproj/project.pbxproj index 0eb1619..0b756ce 100644 --- a/JSON Students/JSON Students.xcodeproj/project.pbxproj +++ b/JSON Students/JSON Students.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 47F6BEE0216FDC9F007A370E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 47F6BEDF216FDC9F007A370E /* Assets.xcassets */; }; 47F6BEE3216FDC9F007A370E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 47F6BEE1216FDC9F007A370E /* LaunchScreen.storyboard */; }; 47F6BEEB216FDCCC007A370E /* Student.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F6BEEA216FDCCC007A370E /* Student.swift */; }; + 47F6BEED216FDE15007A370E /* StudentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F6BEEC216FDE15007A370E /* StudentManager.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -24,6 +25,7 @@ 47F6BEE2216FDC9F007A370E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 47F6BEE4216FDC9F007A370E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 47F6BEEA216FDCCC007A370E /* Student.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Student.swift; sourceTree = ""; }; + 47F6BEEC216FDE15007A370E /* StudentManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentManager.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -60,6 +62,7 @@ 47F6BEDA216FDC9E007A370E /* ViewController.swift */, 47F6BEDC216FDC9E007A370E /* Main.storyboard */, 47F6BEEA216FDCCC007A370E /* Student.swift */, + 47F6BEEC216FDE15007A370E /* StudentManager.swift */, 47F6BEDF216FDC9F007A370E /* Assets.xcassets */, 47F6BEE1216FDC9F007A370E /* LaunchScreen.storyboard */, 47F6BEE4216FDC9F007A370E /* Info.plist */, @@ -139,6 +142,7 @@ buildActionMask = 2147483647; files = ( 47F6BEDB216FDC9E007A370E /* ViewController.swift in Sources */, + 47F6BEED216FDE15007A370E /* StudentManager.swift in Sources */, 47F6BEEB216FDCCC007A370E /* Student.swift in Sources */, 47F6BED9216FDC9E007A370E /* AppDelegate.swift in Sources */, ); diff --git a/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate index 73e2a919125b9c808c0236a388c333e75d828a55..ba1731647ad85c577072231dfec934f46503cccf 100644 GIT binary patch delta 7311 zcma)g2Xs``_V?N6+)T;z8G4Zv>P)8hLP&rB0TN0eR0AOyAV?BOp^CFd5$S?M2Qkfn zA|fCPh#(de5u~XoRa68lfId-?@;{Rhp6L75`m)x|y>rglclW)2cmMV*oL>e@ny_9% zdgP9#1JgkA(r%qXy-9yEfD9oc$Vf7t6p#tzF*1=%B2&pUGMzk5W|1ez9P$jAOBRrY zky^5uyh^r^*T`0~i|i(Ek^STYa)2BsC&)?i8Tp)?A!o@&@+0|) z{7kNq>*NOch1@20$Xx)SAOd9wRL~TfL33yUEg=rtf*wp@20sL#GbBS7=nCB+9eP6_ z7y%>UQOJQ&FdA}U4CKK$7!MPn5K5s8%3&VNhXt?@7Qte87M8$Lcn%`443@(RsDMhS zf@;_VJKzm?6L!Kb*bQ$%=mR(aAHqj)98SPV_zcd&1^5;&!yoV`+=9R0HYJo%fyPiN zRZ$&nLR(WawNNXyQ9E@|Cv{ObO{cwSAKI5@&`jEo_NPPXFgl!0ppVgsw2&6jVmgUV zp;PHB`UIUrpP`HBQu-WSMc0RD4SktzqFd=Ux`Vz&_tQi46Z$#*f__ae(r@UW^cMY# z-llixU3!lZ28=QZlQI=kvlgr+YsFf#cxGn~=43ABW*+8cKIUgVSud8(db2*PAIoMr zY!oYC6WAm+g-vBMS%^KwX0y3$Ase!UEoIBu3RcCcSq*!U)v|4DJA0k&U~jNJ>}~cQ z`-mN9C)inbj$LGz*-z|u_6Pe@V1gjT2nwO8&{{|oItT{AELa4G;1xOxsX|)hd78{# zL4D*LovSLxX*dTr;6{8IH=$vBIg>+-4@aOOGDmo|Z4aWaBHc+EHo~S=q$lZx%`piL zCrBS6BYjB*$t3+E{bLrT4J27)5E(qYZQjJ(($b>b!r;*Q$6)E;%&fr!`&RMo?4g-i z{l-iP=9T^Z1;deG6Kpn0T^=cn8K0byTa-I4SYj%jS}>NMlag4@>QOR==xaz08AV2u zTx@|Yu@$ziA$cU91j$%@1QW3>w&PNF7A*`FlHy8Igl#b4cpdd*Qd~nyNNM!KIE=5m z64Y^OI8LI1&mc30WM-w7l;lpY;yQ6?uxx#*Wwt z^@GP2Ps}gP$uG_;FANry^$iw{bC!*-=R1!SS73sMrPZ@pL>7hWSwZ{KZXN4F<2KQ)#P3@Od_V(7OjAByMurO zG2tYLK>|`DgIJJ}_dyZKkBzqu!YmBnu*B4N-u!t`=AvKkOABhy@#F#xXmK!RS3x6a zj6-lJ*YJ&4yO@V1w1U==>#^}7cm&#TZr5YuB5ql07sNvX(N|PN4PNIxXa^m*k)S<} ztb~r3^N=UNSm%jHBlBf*I$6NUT>w_FfgKz;3P)ouj;R3`xWNNn%)@*P;&?8DS6(hk zsSDr8>+%Fmci@$v64G#NCG^B`{J{5eqqi?)5q&LWKqmBq{xARrVgXLT$8aJRVo@y& zg29jtLtrSmg2gxqCu1p=aaR~38H)A2@}q_eVhJV;?>cO_(e5#pSxOpIDu4;~Iwp2G zS|6+pJ4G;wXe*%@r&PjZoXWjwSGG-`0wJQ^2vcDiOotgT6CQ_I@B~iB88{Ok$65FU zh7dOba!+4@r(iZb4Rc65hPlss(tvwnMpvKhp$gtbIp4Xa=^tifk+F3zil zb?`i_$N5-`%ee+$stSA5kgs2a7oiq5z(#lp7vOWa0@vXB2O$Zsz-!U>Y=&213ogV( zxVRd&!Zz5B&*BnX8jbb#k#ij%iM*_yJ7N#K^RL7E;a$!&g3F>z6I1FYKDqPLQU8G5{ehy##>(n4P182E&*5W!e06)SO_!+Ko zy?1%<(A z-dsz3VcRIIsgr{OrS&X>RTN0}D79u#aenUfxZJWhtIcQk#P!cmU#+XZR7Ae6BuZot z{6S->JX%ipS|wHBOK7M+sD5zpc!=cS zGA-rlNK5deN?L{oQ9nwp;tFNwPAm_Wrj`yW2?iU)m_}!C4qppEuO5blZK~hqpY&>eBR*y7d)Y_ z&{v6q6KuxME9n;ef~)qENgvu?7ex)yzCm~Lm)5m1x(mN-h`l}J>uUNo-Ani3S9k`` z{Wnbj`yh`3C7wooV#?%)Y9l>NkNu4zt*!;qE}Y~f?%^b7qa+LB>S!9I zIz`X?jijF9ET=e+=Q+g%US3a|+YbJg{!H{Q(eLOb`aQi&uh6UX2l^xZ2`}O|_$_{i zm+*VMj92jLOFUAp^Eh8i*3$pb-{?*HJCBzi_`6)_3Pa;CbO=MoFj%;a23g+HGR9)K zS(t!7Rx%O(#Fyi(=2RBTqM6EM_;V#w;59T1%E&D!x-T`;u*O_!re!+T2(RM}{H2;T zA!}JP{58r&$HiW1&CO?rBwPo#Cd)9$ykP15i--U)*!%=`37RPzF0i1e_%VhpfUqOD<_Su*RwQt&R`3j+xQ z)Ud8mc*fGgK%@99%&~!nhQ{0u&1Dl0Gjr@C+BOx}A%^#)Kb6Rct}D1^jbM5k=Vbq>I?%$abfZJZlmv70dz2Ix_9&Pb?AWQU#Ixt3o{5B^5hg_1xY}4&vUMCMu~lp}Tf^3dp-C8; zhJj1eyoNo`){|0J5r!6FXoK-#;JqtSn?dVDEF( z%RXQS!jKq-b`Rou!I8VXZ8Ys?K9u(CBs=vln$?`~l~s(bG4<%fH>g8iv5KcNO|_sAwETcnXiTOFO~`AJ;og2BZy5Yxu>CEkgl0nX z`kV@bCk*z6?5PVKfmfJnp^XqH@JMik!5IeEKhmcmTkdDT|H=v>sXi;*IQIW9EgsTA zaB?jg^HEO*c`XdSsGk04=5Qb*_;_RsGOl>E=I~S!l7%j#)Ey!}_!8xr#reT1AtjnX zbqk8z>x5XRq|$efnl(_Uk_&a;md4(l~i>q$b%AT1=|>ci=^y8aK#oU=YK< zo}?fH1^*H<1OMQFUeFsRa~S_59~-UUIC~?9&O7-e=q8^4-Qv@q#?;6sJ*gZ5rPFLa z)frD`(3SK>x|xq^KA|V*8G4QW#gu#)W8q_$?ktN9W<%I8Hk^%QkB0c%C6^b>AREW$ zFOSv58R3Ak{%_#@`~4d$!sj`z$;|2#oF2?iEy){SFeO-WOz1828Jty?TNXqh64IO` z5Cd@%AL&B((GTcx`W5e(KhhiYSKbJ3@lnxTJ|=3)J4PRt6XHdC3@_JX*?2zvnaGOx z1n4RDG<${@y9I0!dzKG>B7FR_lD*0fu~Y1tkibVc1B5)`2_Ymb6e7ZMVWqHIs1T}z z8lhI$D4dGX#`KLD7LyY*I%Z7FxR`>N$6^X&X2d)hvp8l+%yTizL@^?zsJSRX)KO#< zg`})5v#;b@i6f;aacTCJV!iN zyi~kKyiUAcTp_L!*NAJy8^v42yTp6NABqo(KNp`CpB0}Me=EKuzAU~fzAnBekw~Nx znM5gRDrqa}B(X_)N%~1fN`jJcl7f)rF-f6hie#E(hU9U{6B3j>FL_V$y;LMsNwv~O z(k9Y2(vDKSG)ZcbTBJ6qL+X-tk)}#BrCHL!(jn53(j4h%=@{u`X_+)Eoh_XsohMx& zT_jy2T_;^Ht%y~`wunuPZ5P`iwo|Mj))DK9^~CyO1F^}m1+lAQKa34skG&(~9ZnV_ z6U(Hs*0T08gUl#1%dE0wS(>b;EM3+|Hc&Q5mMt498!j6!E0@icy&~Hzdqeh~>|@y{ zvLmvivM*#`%1+D9%FfF!$gaqKk%L?!Z!K>x?<6J`-v)jrinsza*7s!vs4slHcTR$Wp3p!$y*)Ph>1ma1iHg}SA>liH>3sZLk-QD><8 zsRyXD)PvPS)Z^6?)DzW3>PhMnb(wmKdYXEMdbavm^+xqR^-1*=4QN_uESkxhX(3HW zGhee(vtCo7snXPFHfc6%wrI9$wrehFLEA!`s5NOVTAS9Pb!k0XpSGtqQ`=uVP&-IF zLi?z8lr~qJr(LMst-YkZroE{XbQ)bVT?<_+-6Ohox(>QdI)l!rbLl*~WL+QKK;0l+ zwr;3ylrC47rwi)F=_ctyrMj?gv2M9;rEaxut*%N}qpQ_z)V-|Rs@tu5SD&Hpryr^x zt1r}->BIWP`X&13^vm=s^sDr1^c(aq={M;&>$m8)>bL86=)cn6GjuX!8AclN4TXkc z!!$$4Fx#-ou*Ohrs5NXfyli;Wu-mZ5u+OmH@Sfol!>5L0h7%#f8N*q_dBbJH4a2X7 z-weMS{xtlRBuQ$T)I6zWQtPBPN%2XEN$rvxNvC+$tT zVw4#>7`qxr7{?o@8mAj)8fO_p#<1}zT*i(|Xe;(@xWF(;m}a(>tbjP4AnInNFBKGkszD z(sbH%)^y%<)7-+GZXR!*YMy6aVP0)sYhG`zFjtvhH}5yUZ$4l?Xg*{{9Iza;9I_m-9JL&`+_c=Y5-YW; ztXgX$Yg21;YfEcetHEltnypr=-I`+UX-&8Gv1V8YS+lJ}t;4M&twC#vb-Hz?b(S?` z4b8F6wa&LLv@W);wANTRSvOm^ShretT6bIbSod1rv7WG=v0ky>w%)Z78?^~GkxgQY zwaINtTf8mN*3Q>FGw0(>{-#*q}XfL);wwKwb*sJWj?Z@q>?dR+l>=*6V z>~|f+K^=lao zD~=x=KRa$XZaMBa?m59JI7QAxXS%b{xzM@XxyrfL`Mk5%8QS99>fG+!;e6A%%Xz?g z$a&a#)cKk73+I>4)6T2TdoHaj-sN!hcV)ST{*5LuGOvzSGB9w^^$9oYp3fy z*Fo1I*Adq-*9q4d*I#bpZsSgJo7@(+-JRm@=1z0>a%a2q+(Gwv_XKyTd!Bo-yT-lQ zead~-BMEt$dg45Zp7x%Oo-Urgp241>o)MlLPp)Tzr_eLWQ{pN2O!c5=zGt~-vuC&G zJnkoU0nQ|~eFDeq}-=&bjG_oDX)?;qZKKJYPLj8E=U`82*p zz9zmlz9gT~XYyHmoqZ|3uDFJEt8mT#zUgfGW8+E?f+^G)$h^Ud&ueY1UYeDiz@ ze9L|7eVcsSe6Rc7@a^>N^S$eP-}j;KpzpNrTiWlS|hBl}54?^FEp-$?C{{x0#ltBOh delta 6883 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 a#!ZP^6t^VqgQt{()?NiopQjvg<^Kow_$d7V diff --git a/JSON Students/JSON Students/StudentManager.swift b/JSON Students/JSON Students/StudentManager.swift new file mode 100644 index 0000000..69cb159 --- /dev/null +++ b/JSON Students/JSON Students/StudentManager.swift @@ -0,0 +1,34 @@ +// +// StudentManager.swift +// JSON Students +// +// Created by Jerrick Warren on 10/11/18. +// Copyright © 2018 Jerrick Warren. All rights reserved. +// + +import Foundation + +class StudentManager: NSObject { + + var students: [String] = [] + + let url = URL(fileURLWithPath: NSHomeDirectory()) + .appendingPathComponent("Documents") + .appendingPathComponent("students.json") + + func writeToFile() { + + // JSON Encoder + // JSON write to file? + // do - catch + + } + + func readFromFile() { + + // JSON DeCoder + // JSON read from file? + // do - catch + + } +} From b5c08b02737c56ba7b3b1b244dc50f5c479ac1a5 Mon Sep 17 00:00:00 2001 From: Jerrick Warren Date: Thu, 11 Oct 2018 12:49:51 -0700 Subject: [PATCH 3/6] initial Storyboard --- .../UserInterfaceState.xcuserstate | Bin 19039 -> 19624 bytes .../JSON Students/Base.lproj/Main.storyboard | 64 +++++++++++++++++- 2 files changed, 61 insertions(+), 3 deletions(-) diff --git a/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate index ba1731647ad85c577072231dfec934f46503cccf..cb2399479ed5ef08245fdcafda167f573ef1218d 100644 GIT binary patch delta 7734 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 i_Ut$yWlqZ6lvOF~Ql76Z+X - + + + + - + @@ -9,16 +12,71 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 6736268703e41c9299c1fd4c2a9acc962b63fc48 Mon Sep 17 00:00:00 2001 From: Jerrick Warren Date: Thu, 11 Oct 2018 14:59:53 -0700 Subject: [PATCH 4/6] app functional working on UI --- .../UserInterfaceState.xcuserstate | Bin 19624 -> 26118 bytes .../JSON Students/Base.lproj/Main.storyboard | 114 ++++++++++++++---- .../JSON Students/StudentManager.swift | 23 +++- .../JSON Students/ViewController.swift | 27 ++++- 4 files changed, 137 insertions(+), 27 deletions(-) diff --git a/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate index cb2399479ed5ef08245fdcafda167f573ef1218d..a1213e804efd4c4293f2fac4915907ce9c2661e1 100644 GIT binary patch delta 13880 zcmb_?2V7Iv`}aNf+#4VR0wEALiW3DA2q9r7Bq1Rrgn$bNMhJ)^U;xEh&AD3lHnmz? z2czy)XY1bDT5H{-j<(iXTU$r9!>;$-gi!speSiP|=Y4Gh;oNhc^E}Uep6@fxS^FlK z_7PYhrZ{Gf#l2G80|tZZ3p0DUEJOj(ml#A85yOZQ!aUMCh4ONlp$w~3X+24W+ziP%hRA+{5Hh`q#7;uvw9I7gf(E)W-qOT;ze zGvagN3*sB%TjBxnGw}=YocNXa4G_Q&_=5lt3_^eiv~htBpd*L^y+I!k4Pt;CB!DEK z1v;PyS-=2{AR82bzMvl%2nxYaPzuVx2v7~i04JycwO~A$2&RDPUs$q-URhLU2k6B$8vCcBV*$Y?T#j3rfM5}8b< zlbK{bSwQwB`;q<00pwt^h#W@RNe4NKtRkJ{M3NyVlherQ&@d4ar0eo5XXzasCEUz7LAZ^%dFWAZ2R zXGlN*N$3yxPyj`+4eSKF!R}B26QL5SU=mD*DKHh9U=B1x3(SR9*cbML{ox>31k2$_ zI0lY`u6j5gPJ|4c45z_aa5kI+7r=#Z5p=^%a5LNjx59VfHn<(`fIHzXxEt<)``~_f z2p)zf;VJkrJPSX8=ioJX9exTwhxg!P_yqm{pTcMGM~a{TMN)i9Km}5vl$eU9VyIY3 zO3A1=DxQ*436#P`B~rPh#aWpo^^q*LikT1)F_6P-hw={(v-=hFrB z0D3Szgf62;(G%&J^jvx#{W|>?y^>xT9uh7@&&*;zTd-MbPNBSrFXAa4M9E!u|gmKz)A~`)cJwrHsI8u(BlfY4N(l{E9 zo|EnVluUykp=ft|I3s8tT8LJnBj_kPj!vMM?b{(A&^AWoKh9vHvIj@BNMYz~A z+O|koiD{2;-{$xS|MhT$=V5#Idvv|*0uexPF+Zb-YL@*9Vl+`nRH2Tj6N*5cn~5=m zlc*tTQ5Vz$bwfR|s11H|ToZ_i4aBP`5_LcCS?wYwHWLU>#2?fZPh>ycg*+jKAXbPO z#LWJde6`bQAK!@oD2zP#i17ULZ9j*YPlPlQbBTGV7m8{m77zW&xwA6n79gc5B8to-C`N>)?iD%w!FBuysFaf#QQ8G3cZh( z6D!=G`%4td*&*MKtB7}4fg6ZMqKRlmQY1rhD889k?Gbn#l6wSBY!P@XEAYE0!6)zz zR^XjjVEjP}EG+x!F7)$J-$xwu%5wnAqh#edjO9_G=>L!;n5yzEIYFFe89GUvB0eBK zM9C-xrJ}TE;v>wEpoTb$(mfnydO0#(W;wcoGJG6eXF2+mxWRsq8fiSA?n1FJz_-C2 z;wvvtcQH>|mZz^VPdaSe!Q8gJz9XKn+ka0yBpwluQ5G^FBg$?jejuI_&xjw937L@v z<+kYKcXszbP)^J40I<8?!1}-+ymvRxr+Z{ZjQ2GQJGL+ZxIo}x0`M^tR?Gwl!c64- zT`_b&-;z)eMnp9LG0JZM;ixa`L4O%DXzwxR0(Uj9HVSkCU9k`#0(1slKqTsi`lA78 zU^D0jx`Q5|Cn`iEP&ul>LIm>n437memar5JY5;L)Fp4P>25b8jp3&>svKYRNa()!K(wI6O|%1Xv#`EE0wcD6T4T z#246|WsX{1NqKFR)63u>{6fHBG!k{c2#UZkU?+HBI4A}s065%%ft~$EqY5+%IkBEb zM@6a+?f$;NGWQ3cAmyNfh-w5Q!6;OTsv5y)P>HJ17_6sZf$@IWgFzh_>pmP9;nxJl zfqJ44e@|1s0wxeqt5&fu!~-H=5&0s#53l@S!=v6cUO+pN2<4#ar%$ux;%g{vBy)ds{7hUg+ z9^F^x+j<39#csV4xf(zNLU_qEVYF&B*hECF25Z1tunw#T8^A_18BIa2p{ZyZn!Xxr z23x>Z@GjT})My5piDscWXfA$rG42P#>8`t99;%;uX-bi>=LDH5CNW;7j8n?ur80$5 zrHbnlAydj@lqz{be4;`jm&s(xgo)mFae!s?AexOC)eJ0*j#oz4N}WDNkAh=frA4N< z(Dyw#1wJG~8o&o=egim-79bGqz7*Wm_zAd1gscVUz1Tm+ZEWpD*tMT?Ldy^a>6 zH_#Ha6ur3?T*oG*1~6I(4*Cp_WC*Y2tKxja;VJ>t+4wm5L&TykEI>L{+6@p!b)mk1tk$$KV+e)dZe^ zAHY+z3N@g{Ch#Np3H*$j&|$P0Yj1*RwEhpEdI$VT5+oo=5~60b0c}Cs(R;1#Lvlzi zrbGIX{$v1p2dzeHnn)hWCk1FNT8GxN{@C4(`gC;Xgiaq!hLLUmHoG0!9`CvlZDMzg z%&jNm5e&w^<3Kf=om^&`z`q z(@$>+TE#>}HGK&l#jbt{~!24(qT7&kYeXFq^%%p|P#Xrqh8~f1#bO`_4k9nQgXN5}$ z&XWW2=7r=S99Ls%%SSs{pZ?=V*{SR3pqG&$k28mLzJzSj^F*AiL4 zMUExM;S@+mXvqnv9jZeo(FZsc3dbqYY1I9N)P+PIL^xFx3{ZV^Jqv8np2R1*rmD_a z?1(O}taUg`?Zu9y*x1;_~^xSzhcuOWU*3E9{kJb@nnxss|He@;!?(F_oN_ z2QgWWN{18YQziLqK4tWg>)t}Yw7kNR>Yl{0yUg}VOvvfYySle9Q8FrZw7s~hrd}qE zk;z*|Ydy%D>h+Lldv$e%Bl?9|FN!zSBi@HtJm-HA&wYq4#yJ}2|D#N0uK!PBfD(@w zqkM)thkTugT0_ny=aKWt1>{0<5$Q%}(8uU3`UIUr=h1~V zXgC9|;Ylnc#khlG{&cmSFhQ1}Oz0C4txA~KCt`vuQ6cXWp^_&~oaozXHMy0DT1T!S z*OKeV_2dR}Be{v(Om0D!(G_$RT|?K=r|1T{iEgdKnMY@GJGq10N$w(dz|FXnbQ&Z=t z@hRvMd4mO!%j6aEDtV2(PJW8+qOZ_B^fkJVzFAG)ByRz+8mP(7$uH2i=m}Q-aP$;C z!<=oDwsGH==D3eaySfu(y@J0bzr(?Ye1IM_kl&;4aI~nBwRJrqpJE&!e?Z?ikk8OV z6f-0{Ki3kGUt3p#lkrwQej$Iu=>z$k{1rVykJ&HJ@s~#^#`=%*A%wJVGsrro#-Vh8h>lWB_CU#Q>TC90vHk19e1aES~`y8Q_mS3=79+Ks#1Cu}=hD zeYL%^#8KkOpNoXueB!bU*)to##!xkH5i?1F-8{&Wq6*!KGtEZEUzuM zS5%DGxmpNiTKjrkkY#xUj_giHWy_+DKH@Js5f;2<_eeY;v(AZE)aKahDvL+td-ZN} zlsfQWvBTsT?+Iow4;C~+8_Z`w00X!T;0&V9z=62w1=Ystrdc&QJ@u@eqqfB= z13XWCgVVi(63<|fuyaZY3&#;P-ggyITIGy*N%v_Y*Pq^hURLJ9c{ojX&rn6d`Iwif zs@`1(Czje1q9O1Os%G3%(9 z#JY9_13ELH3j-n<(3JsLunhnwu*B*uy_G;{WdKb=uFo~B2*?BEv zEh{m+uvuo2unk^}F$LSm-`NX!k#Lr?s;=5wKEwCm`>Plb<$YI$aBm~)9WC!9;{}XQ zj8{$c7E$nkC$$u{yyZWA0Cfc7@~HtHWk75LJkH?aJ;uE;ba4`v9hKbgJYF56T?p#hWZ$FZLPC>c%27z<^P+7MwiEF zYR4A|6aP2sF#c9z7O>O$VktZiFX31UFTjfoNML{h8y8NY*uc#~tmkd8aG&F_k8+fF z(Y{F7$u+>%`ltoe_0Fo%{i~d#YN~Mt?Ni?kcnhn~)AE2gIa0P{_V5c4Wq_3ddF!bzR3sZFaVk(lMfRk6QBhQH z2G|&o&xTB#6Le$1I0hgF>}0@)*o5ol-J-%;MfOB@9N;QTaPENv1Iw#706LtkI^1#c zI9IT5q_tm#9qMHgxc(`x!+tEn!&*nFy{@9xvxucpSYaPuRaaZ!boh*eQc|jy`Z-hz zmBuPAl>r3}6t)T6d&A+}`&!&LXgYo+uNQ zLtzySV8B2I6gE-0STA`D7{uzK4!uP{e>?46ri*j})(=N+<_aN|jL~sB++9KnVjJ3@BrOlL0jhsKs?? zjGLoa;EF1)8Xe=Q+b{sM)R!%w5Fe9|(ZHMW#SAcNd|cE~uMi=BZ&OhdylpB5l(zJ# zqCJt8Vpg{J8UbRdY1uXQFjbzILmK|%Cb0RVxI_wRN0#4Q#+~Mtaa^TKz#%C9s|a+ z_V+I>T52C|(Ng=V0}ObD0TWx%i#kjl_dN@LE4ECx< z>LzuI0h1Xp1=m&{N48eg;PkhuvP(MAW~|Qw?@(W{>%L?i?KSLcjnqBrYX(eZKog1? zsAkiIN*u&|(;rZe{=w^9)MM;+KQOox+l|3Z(iUs|5hte9PYjs;m&%^g5u zO>^*n{&WBXW-wqT172sq3eW#58Q>}AMAdb}EA-{X-Udrcf2W08T0n+M{YG?-onpqRv-eQ9E2=--`GvFPs?p*jllCGd@|A#h6mC$49adiC)(7&1i z>lm=@FX;EZ{7Lkbe}Z!QH6N6(!BFmE&m6qoLC<1Y!{)daH}i{&&CzyibpQJN7foY6 zy#V972i7sFt@pvYS6_>KzDlrXzrL6HDSeamoEr={+<=cCyLqAn z&Vp;IDjeP-g-xh@v%jFf#IrpqFnyN+M_W>0`fD6N===0H3^>MsldWJ#e@8$55A?_B zMM@L>gy>8^Wx#P3{!gIj0XdFR7}A2VJIAM`Ku@Bcx-v;GgFGlyWnDR%t_IR4nm z%SN;icx|nRz(owJ9F8BsF6T}g6 zg7G|mPAJ)*BPOP~vr=d2d#O5Sn!9(%ws61jC z11__wxx%I@+zwbV>DYofT&yfMRN%8rP9{fNBfk z?p>3`F%${eUXpJOuaRS9=f5zM%=|c?niS&UkQE0!e#TE9NngQd=D@&@z8L`Nr z)%XYnGlgsSznVNKKnRh)hgd@5`EW^_wuRn>Y-AeX{mS+NI$H9rt;_owb(QRSO-XAP zt+7qJzpkfr=tu>1>e9{KIYSiQ7||K=P*7uJR}_N6P@4-qdIt51>g~?SkPYD@0SYV< zc9q9TwKAPX8Ld^sOQY5Cnc8TbRIiIx>h&tEDn4EouhI|3XRvWN+{mO#=|s$DtQ4P- z=NIGhr837;$u!2cV`<05_eMe#i~`-0GvfU&C{;m8$tmtf8R;$&K7kS!3I8t#54e$n zPbILf@u>t>w&z%)Wzz(FE`fK=P~%-@$+hO$@(cR*>px&%;h@1oh87L84=*lp zl$MPscYmTj>GDGq;tGQhjoJ!{VD)sup9m(}5|KnS5l18v?6twy@WsI8#5R20?=imQ z_b0yE*9mk6k@)sQA0PuM_#R&=D93m8#si#Q;Y0R?z>RO|Ed|T)Exjgi03R=3!bi*3 z@R6+mU$E;;b|rh`Yjv@t3}2yhmEgN`)A2dX27Csy1s`>Mi?6=@iLbl`KpwvG7KHoZ z8khwO@RhbwSdV*YO>hG|h#NBJ@NKm3;4k>*nFQZBQ{l^HdH8BsU#dSf0ADQ|ge$uu zT-6oh>aC0__vUIO@czcPA6x&q*l$z?+RX;4eB85jl&GD>Bg)4*oaZ>X9BW@sKNtb5 zmNrBeqBoI1BoXQGC-^(Xr9yDs-W6Bjz45KLIDFSlflJ+7YAiJcUte2FEu-G1R#2;` zMtp^BHNM2Q7grGnaoKQ`I!>LWKEM~)&QNDv)K@sy72;cJg*Y{tiLafp*UXOLkadPW zOP`~!;_GEM=v(w>7=^PruW=S~mT}(Ztl+HTG;%g@HgUFa-sNoP?BpEbe8{=XxyrfD zx#5@RSLo;PtMse&8}B#SZ@%9`Keyjve}R8n|MvbJ{UiJr`mgX`<=^Pv9MC?%)hi$_ zKpvn7PzEFgWCrL0vI2|&rT}xm$bba_I|42Q+z7ZG@Oi+UfCmB30)7hkCE(Y9-vj>S z0xsn8xuM)P+%DW$uAHmjD!HlLbgr74$u)8ZaP8dT+!AgXx0*YVJDEG1+rVAR-N`+` zJ;Xi2J;pu3JvxfZRBm{?dKiho#9>PUFBWp-QeBg-Q(Toearif_mKCPAIO*U2k^)7 z5q}DQDt|hE0sl?@Tm0qxmHY;N6aO9l8vYLc`~1E9{rn^RWBe0**D3xL{&oI6{v-Yq z{!{*s{GSCt00p$bPY@vB33>`F0;gc1V3}aKV5OizuwJlTuv4&G@V;QLV87sm;FRE! z;JV<3;FjQy;I81F;J)Bz!LNb-fxJLLpfE5bFf_1pU}Rvoz#f6G2Q~z*58N2IIdE&> zw!poC`vVUK9u7R}3OpY8D5z7AC1_mGYeCb4W(Lg(nisSns5xj;(6*o*LA!$93pyV3 zQP9Uhp9Gx`x)$_l(9NLRL7xXb4EjwNB#alzg{i`9VV*Ew*jLzJI8-=HI9ymFEESds ztA*o*GlcVn&B9H>t-@`>9m3n&6$m2ZC<}-wmNd+J*EC=@k+c(kDa}k`j^@q7KOn(S_JT3PSpY3<$X# zawp_L$oCwq zz37DKtmua5zUW(*=sVFv(PPmMqGzFGC>6>H^$+ES@l0D@Y3)R;UmKGx$=C_{ zAuW?uOY5bKbc%G2)Gb{q-5}j0-6efrx>vei`k~ZyMtW9yUV2e_S$bRgh4f45SJH>l zN75(KUuAq*piC$Wk%h{_WD;3hS$kPWS#MdiELJ9q+ZlHx?pWN3xKr{pxk+x8=gRZs zL*=98Rq`?N8hM?3oP4}|f_#>Ij(nbcf!r-$EMFpjQ~s8Gz5LsR(1i2^d&0zor3pI| zj<^yoC0t3kmhfr9&4k+tpC{Z&xSMb<;d#Pu34bUE1ypbp0Sdk%P!X&UDf%eV6*h%K zF+s6jv0L$>;;Q1V;(Ns-#S_I-#gB?V6G0+OdF4grHRY$uo66hD&y?RQe^vgWB2-XCtNc`agml>bUBp>I2nBs%xqns@tm1Rd-ZhslHZylSC(VN>U{iBo!x3Nt&9pC~0}ps-&i* z)k*7;HYV*(+LN>|=|Ixqq+>}Zl5Qn)l9Q4LB{RvhlIJHcN?x42GHSFX$5KawEDCOX%o{>+LW|uX*1L2q|HxTl(sl+Y1)>wZD~8xcDvH{ zr0q*Pn06%Xc-qOd57ItL`#A0EbeP^QJt^IoJ|uli`qcD>^j+x((+{N|P5&tUT>97P zkJF!|KTZEVgPS495N3!n!ZIWoDH*zqoQ&KITSniE{uv80PU6#zK($C6rf#F|sE$x~ zQFm3RsE4XYsVmjh>KgS}b-kKV&rrK&tLLc~s@>{U>NV>1>P_mc>fP!+>V4{i>ci@@ z>Kp2Z8dAg4NHm=^T{PV^JvFhKIE`GBs8MOMG*-z)L8LxR&GfA^h zvrMx_vtF}FvsJTAvqN)Ub6fLN^ONSe=J!k@6J~NU12XxUL75?$Ju;(QnbDcCnX=6I z%!Ev3W^!g)raCh-vozC{xhQj0=I+cRnU^!a(?V^aww<=Uwu82lwvRSe8>dasDz!=4 z;o2&#Q(LF4*G|w*)K1pU*S?{BQ~S1drFOM;opytEvv#ZYhW4qBuM_Jex^}t_x+tAW zm!eD8X>>ZBL1)srEV?1OVY*^nsjggCp{vr3(bedXZjNq^Zm;f&?wKCwWAw>-Exx~J z&}Zv&^nLXM^o9Dt`l0$^`f`1RzEWSUpQ@jspRJ##U#NHMkLy3yU(sLJ-_(DmzoWma zf1-b;|4IKmOOzFn)g`N2R?n=2ti&u;R!WvJD<{k1%F4?s%Bsk!%o>wbll5xWqO2uZ zo3gfLoi@;hKtr%0)DUKfF(ez(3~GbckYz9$h8Ri>qYRaXF@_ogGE6tjGR!qBFf1`F zGrVnBX=pHPFzhfKHk>k?HhgS2XSizk)Ns@Anc)k=Q^W5@t})0MViX(O8ao&xj9rXU zqbtFvF=iRFjb@|G*w;9~h|j5wV~q923C2lA#yG<`+c?*_z_`fxmT`r#!PsQnYCLE> zVmxjS&5I zbu;xa^)e|1Iy5oSr$ob7FF&Icswc<~+>#E$0t2VTNYDImjGh4mI~SE6wRG^cJHf z$C7KwvkbM^Eyb2ni_2x1W0_}JXnEbzU}>_vV_9q2X?f4G$FkpY+H%!$-Ez}%+w$1* z-12)akxS;b&FzsZ&5h4haqpSo5p}*8bLkR@WeFmGxDt%gR_^vrf0p zv@WtPu`aVNx308qv~IWVvc7NKXFX~?VLfF%Z9QYXY`txLVEw`RqxBc-Z+S3}ljonu z%M;{<=SAen^7MJb@+Ra>%0qcm@}}jj%v+ncC2w!ut-NpY9^^gDdy@Ce#W;WzU_(aneAuW^L&^eogbG!INy;!JAXm`uKa@oBL{XHm^d(H WpvGJ4kfirFC(rx4?~3g6~RRi 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 diff --git a/JSON Students/JSON Students/Base.lproj/Main.storyboard b/JSON Students/JSON Students/Base.lproj/Main.storyboard index cc563fa..30aa2e0 100644 --- a/JSON Students/JSON Students/Base.lproj/Main.storyboard +++ b/JSON Students/JSON Students/Base.lproj/Main.storyboard @@ -17,64 +17,130 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JSON Students/JSON Students/StudentManager.swift b/JSON Students/JSON Students/StudentManager.swift index 69cb159..415e327 100644 --- a/JSON Students/JSON Students/StudentManager.swift +++ b/JSON Students/JSON Students/StudentManager.swift @@ -10,7 +10,7 @@ import Foundation class StudentManager: NSObject { - var students: [String] = [] + var students: [Student] = [] let url = URL(fileURLWithPath: NSHomeDirectory()) .appendingPathComponent("Documents") @@ -22,6 +22,14 @@ class StudentManager: NSObject { // JSON write to file? // do - catch + do { + let studentsEncoded = try JSONEncoder().encode(students) + if let string = String(data: studentsEncoded, encoding: .utf8) { + print(string) + } + }catch { + print("Error: \(error)") + } } func readFromFile() { @@ -30,5 +38,18 @@ class StudentManager: NSObject { // JSON read from file? // do - catch + do { + let data = try Data(contentsOf: url) + let studentsDecoded = try JSONDecoder().decode([Student].self, from: data) + students = studentsDecoded + } catch { + print("Error: \(error)") + } + } + + func create(name: String, age: Int?, cohort: String?) { + let student = Student.init(name: name , age: age, cohort: cohort) + students.append(student) + } } diff --git a/JSON Students/JSON Students/ViewController.swift b/JSON Students/JSON Students/ViewController.swift index 31ea185..53d4ad8 100644 --- a/JSON Students/JSON Students/ViewController.swift +++ b/JSON Students/JSON Students/ViewController.swift @@ -10,11 +10,34 @@ import UIKit class ViewController: UIViewController { + let studentManager = StudentManager() + override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } - - + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + studentManager.readFromFile() + } + + @IBOutlet weak var nameTextField: UITextField! + @IBOutlet weak var ageTextField: UITextField! + @IBOutlet weak var cohortTextField: UITextField! + + @IBAction func saveButton(_ sender: Any) { + guard let name = nameTextField.text, + let age = ageTextField.text, + let cohort = cohortTextField.text else {return} + studentManager.create(name: name, age: Int(age), cohort: cohort) + studentManager.writeToFile() + + } + + @IBAction func printButton(_ sender: Any) { + print(studentManager.students) + } + } From 508e87fa03f3adf1bba75403df248746abf6ce77 Mon Sep 17 00:00:00 2001 From: Jerrick Warren Date: Sat, 13 Oct 2018 08:21:30 -0700 Subject: [PATCH 5/6] revised saveToFile. TODO: Work on Constraints. --- .../UserInterfaceState.xcuserstate | Bin 26118 -> 27541 bytes .../JSON Students/Base.lproj/Main.storyboard | 118 +++++++++++++++--- .../JSON Students/StudentManager.swift | 7 +- 3 files changed, 104 insertions(+), 21 deletions(-) diff --git a/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate index a1213e804efd4c4293f2fac4915907ce9c2661e1..9cb90943897e4a80f999db6ad2bce2b502be19ee 100644 GIT binary patch delta 11163 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 VX}t|k4?n2kTjKuD!%uJH{{y&cA3gv8 diff --git a/JSON Students/JSON Students/Base.lproj/Main.storyboard b/JSON Students/JSON Students/Base.lproj/Main.storyboard index 30aa2e0..1b30290 100644 --- a/JSON Students/JSON Students/Base.lproj/Main.storyboard +++ b/JSON Students/JSON Students/Base.lproj/Main.storyboard @@ -17,13 +17,19 @@ - - - + + + + + + + + + - + @@ -55,54 +61,74 @@ - - + + + + + + - - + + - - - + + - - - + + + + + @@ -110,28 +136,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JSON Students/JSON Students/StudentManager.swift b/JSON Students/JSON Students/StudentManager.swift index 415e327..2bc9555 100644 --- a/JSON Students/JSON Students/StudentManager.swift +++ b/JSON Students/JSON Students/StudentManager.swift @@ -24,9 +24,10 @@ class StudentManager: NSObject { 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) +// } }catch { print("Error: \(error)") } From c6a61606d1e6eb7d3e513fa740f3407e355862b0 Mon Sep 17 00:00:00 2001 From: Jerrick Warren Date: Sat, 13 Oct 2018 08:24:16 -0700 Subject: [PATCH 6/6] test --- .../UserInterfaceState.xcuserstate | Bin 27541 -> 29156 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Students/JSON Students.xcodeproj/project.xcworkspace/xcuserdata/jerrickwarren.xcuserdatad/UserInterfaceState.xcuserstate index 9cb90943897e4a80f999db6ad2bce2b502be19ee..79eef74fb256e49cd60076c17d583ebc354e9754 100644 GIT binary patch delta 12962 zcmb_?2V7Iv`}aBL4v-lFNeD#6Q3onTLx3<6b|8c>G9W-eWGD_$#BI$vYTZ`bII4Al zIBJJhtJSJ?)LHk|)@p6tTH9)e*7ZL(NUgv2{lCA@`+0#&a?d^Ed!F;0?|Gi*K6B5( zt3SZmQsx$a+ZiwK%=n@9Zzs2NB!d)?3etcMqyr-`0}Chu)u2BZ00x3Vpa#@}!C(le z14F?G@CG1YJa`Mt0<*!};2rQTSOAuQ)!==w27CZM1RsHq!8-6c*b26RonRN(3yy%J z;21au&Vvi!Yw!*D4tx);gS+5o@C*12JO90tKe$*K3oIW!wql~{0ut2gnQs#xDW1!hu}$g3Z8~%;J5G+ zybSNayYNSN5B>xnz(3(*_yj(M&k&E?kUR20zDR^RqSsI-)ERX_T~R3NhPtC3C=9)h z!ck8Yi{el`(x5bygK|+GG9fdvAS>#P%1|Fvjs~F`REq{X&}cLUInV^;M03zwG!M;3 z@1jL$DO!da&;!fq`zAYy zoy__a!?5FG&b_ctY-No)_53mQ>BkWQ37<-&O&7Nm3 zus^Uj*hlQ29M8FN?p!O*gLC+BzMO=Ua-F!&ToJ;jj5Yq@pYC)|2&Gxr6zhx>{<sS&iCYd@k&0LSMxEvhEL+t`3ydXH}e+W#uxG> zd>_7?uiz{BDjxHMAJ0$VC-QIdllaN}6n-i{ji1iH#lOuv`2~Epg?t0w$S>!c_!ay| z{Kx!Sej~q?-^=gg_wy(Cll&?ETmBM%nZL$gcj{OTa}!57r?69e-^U-~&+$e4ExwGu z!yTP%x%-3SKoc%2rP?K~vbs^rK|L4_3X6@V zmt`$$Jrax-)_N4~)BwidF1X_ef1IOWboKCeR-giqmaDur)$8&I41DJJ~jo>sm zgHv!S73CAZNETcK-#YE$5NmgfOmi^jRL-wZhin)LFlq&!WuSj#T($3 zum(4=z5(3EhF2H&C)eU;mWuYa?CEkBEePA$p{=VNUOklVfcVHLWn{0&=%{dIWkk<% zbuYELyk}KKM0u|=by<12Iyxz={$2yC);^kJgF;$JXKYQAOl&*;ar@DP1xK7-5>{BK@V)fW}J@;seB#&wGl2Q zgno1Zp%`1Su27#jqK8h^BcoUT3qe9D45TAN87^pma%`gw-2!^3+rZaA=t|fYhQM~P zJ?sEG;v!s(?YIP&;@&G^C)gQwfn8xJXot&iA6$+raTV3Qj?O^=PKP=yT&auOoGWU1^2`K@jzVD1k<1nc1VXAcrbS0xA1$fND>-d zlB_Nj)j4My%AB*^{G355FAtNectELWn5#I$y{$VeaFq>m4t5{w3GJ?%+Lj6)=>g6j zI=4{R8&(P^%3vQ@4lD2wT!)9^`X*Qf`@(*(8V|#x@JKvbSPkzPj={oIhv4B@*F5!l zu%`(QqZR3eN6?DGr4xCIK!+VaH}hr7bjLvg#EsAaF&=}*Hp2060)7LJ!%>#1+JO~A zODbL*poYqtzV-c@yPpE~EW+lRb6G#0k)K8nCvb8PEH^c3n1gKl!=Wr|BhG*f~_-*`76Z``102Oc-cH;T; zn0>bys`-Eb^&p?=el$viKtbFgzm3O_AI>64D>t&x4F$T8 za&VltJQRKhuL(G=!0+J?@G4$}7vm*(X%oB-Z@`=I7G8#%@Cv-L8Aqp|1suQNh87&Z z3OIg)zY7;`#LHcm&e_vPCV!5QYg`2BxU1;6h^6DMrsJ0R$i=7?@&w`rCN)&-qcq`t9w=YLgC>p8p7x)`|kWNc3 z8M&4`bXtrWT%7f#|MN#J0vu(5y%a(Bn_(`Sn)zFPzCDukCxS_ zKN^4!;lua{g?l8hea|6i*nif7H_!+)lCIS;d>nTy2O+N^5ONZY1)k^)G;TwPe2%p5 z3D?nsFe3K9⪻`lr5)4<3XX7+8Fe%1Csd)jn4ZNK8<(dGx+RE zI{TUEEi{Y%pGjqK4xh(g)Boov#Dws6&bV;WV*wp}A$pG%ih= zIJWuw2C!!h(1Sm~O_)NtGYNf;wxVrlJCIQ{!JoGs1y1D);$9m?0L#}ddi~LTZZ$RiObQ+yO zXVE!y9$i3R<6HPPzJu@LAMri>(<*ckeM`0YGCCt@GyWO>f>i{yqjdyj?zmxusy(#+ zi2eYf@1uL@C-gJ=1>Hvv(68t>^gF(fAK+i{Z}@lo2Y!ej;XmI;4?#QhCwh#Ypr_~= zXh&)6G4>&FJwYA>`4JRAP+QvfNV-TrMINqVycih>UBh@YK8!CTV*D5}UvGrO6aBMNBb){saaPC|S;wfObr80;PiVWG-_xUEhxx_-|DQ zHCL6tsA|ir?%U60CBIMvW++2;e0u^rEN5oY#h684M@)sU zrHF%4%F39zU{3=xkHFUiJ$Koa%mSu?swK0Kd5>AdEM}H4OPOT^b|SDdfn5mfN?<5~ z-3aWyifLq)Gfm72MsS7o1oj{>jKBy2HS~}A#8L|QQp#+Hg4&*8WrGI~tPHED7hK@K zJGm{xZeX?m@e1ZsW+StS`Hb02;Ohj26WEhLstn41cQ2#<8^6y{TlatWFaPQI{eN>W z9e;QC|KY{H@Gt+L+{-h}K4w4gWDYO~nXi~b%wgsTbF@?>YH|JzwdG~?)lOS{k|>tI zNCM*tR1p|cDvEl?BpdV}k%+%ROQ{`170Shy%n3n7P7-RN>P|6dn6q@eb5xZs6uxwb zEiSj6z-U3Y)Wv#Jw$W5SOz@Yf6G+`x<|6a0Gf~ryxdaO7XWLHxju(FMDVHy`ADEc$ zK`xdN7>7Y~lWWX%r=K>Exj~!wX{D{2OK&l^otfGm%pF>qsqNP0KgOb-1#?fp`xAi) zSm*Re2=aZv{L1`B%YO&C%tPjpQ<-3BpN=VMB@vi;mU+xPp%0%j&zR@5!tX3X^H~Ot zaW*7mJJJcHYMuOwm|0#BGfR1iiZrD~q|Np$>q*CEDF>zgB`elfkQISx{}jz%LU;uP zD*?GIf@44~>_WGGhJaKr2!+m#4HD+|kU|&CD=JvF4cnGRBb?b$a_71v4=*E)-ZZiy zpzv>n&f+8wzCGKaRMerRo_izPQK-{WAa-)+k;Xi8^+T8 znN48cUsTEVVk7^B|JW$dj#U$wBk*4?jqgedQY`rd7EsPvlN@X@v-v^|i$Ie$%9M?4 z0ZTs%33VGf+7gA}Obzu-U$75rXUpi=YzbS+QdTb_kaE3!Iok*JV=D+O5f+cQII~Zm z{?xKy2M}2La^f}Ya7vkMEjySU!q%}v*?M*ufwZGC0{akHP9W{1lEA7}>K*8dGx(NT>>>i=~O9DqXuzLv{L(9{3 zdRa41uwMy0K_G=iiQ=U*+E@OSU|Z1#&7+J{!{z2d*0w+^rWHEss5cna1 z9})O5ol#VVs^?=42n+m#eab##sTnnez^MdIBXD{X2ifNw!?6U?g`ZB~TZH;?vbqWpdU1?#dCfhnboF2tPOXrZW2>b~esh)8|5l}0CAs2em0UwuK__X5 zYMj$EYlytKSs~XnFIYc8T67DqqlePmtdQ(MT+J)tFK!4of(F*PI&LUe&kf_~X4ydC zrvz>!a1()_t>8v-qqx!ZDcxb42|P;RMc4Dk0#S!JbBr>rslIMldHt}u%2HAI|M6vk zv21vC-!dwUzu92bl{9{?5c+UN7!#8xa)MvSy~$1DCUaA`sT|eGEd+i}Al-`sUi>L$7QO()ez|kGBi>mM&*+G^D z8tbI$Nf&f?14q~BOWg54gx_q5a;v!yD2H?Jb886PL*QQFE7ceJbr0^C^J*LC&nB6p zWdm&BXmq$`WGcP`II88*7H;dy!RchEuif%!2e(UjL2_^yT2k2t4v~@RJ-31uuIU!{yF$7ll6`s}_ZA7<;_keJewV;AFQNa$ zQ3@2Gzar>gx!+$lpmcZsWrIJtCxXZx6L_ITWUm-&FUI5{&-~Q|&k`DYYFR7Zjdy=V zT)ZbwiESnC6~lY;KD;k4;wi^{OW-8}FBAA3fmBT2uLLXj0N4+-<7Hfyppie&Lyy`H ze^NrA@XzHei{abxovGaU_IwAvBmWxTiNLD_QqI3l;0*$AuHd^+f4d#ujqgrqgv&>0 z{v&~pX!B2UcZ&H4KB|#d@sR}HCh!h{cbyaRy5#Y(d>nlZ^WqJSsj_}KEr|z(7Nd#Y zxOjl4aij)5fxvq>_HTp;a`_bIFrUWj1Z(eS7a#sa;6vxrJhg+@Q!3;$c>|xt8wvb{ zzy}2WMrb&##UAH#;T(bT?qhm@sPlXF3K6XL7Zk=@nJbp&#)5sORcS%nPN(_v|5o(^t@;f?t%a&>XjNN5 zNAY+3_kv8W5ERltgCauMWmZ9mCyoE{H_*6jKd##OdBMy;*(=9jnCpG;;JVuW&V1Wj zC@NyZ4VwYAzGTeK$;~sFE!O-3TVYYLy`;2vS)cNX%BsHos-5OymGkZ5x11sNZjKc+ zN9GE6L{nefXwpk(`o5$)O?Oez1ea83q-iX5G>K(AO3 zH2$PyGMOC4?qGT|wG5#_j1OsK;Q(`rCT#p5IC-puCS^piNo*!tNb@gB*xqazTh3O{ zOpJbPe|8{SLv8uGW)m5~=1-a`^vVxA44IWYcbVR z=K@0qa0hbG9&`gLnkS&8*&H+3g*1!fBUkpuR(3l}?Ok>s&EL38Gd28aYDO2DmeHN2 zWQ5bCj0i50CS_!DSu`CZmow3HjC{^U(=qHcA!9gAyI973#@*(g@N!C2lsjlvL@8fJ z^C2qfF0JP4`Qf}{BtM!T%a5bU5nu2R-FmtWaC^^fwc7`7AGxh_TkrO%+b*|*ZfD%i zxm|Gk#=VDoqyozwPdHpX)x~{gC_9 zRy|u)w{o^x)M`nqRjp38I@{`UtKV8Z@o42C^^ki6d$jQg@o4Yyy2GQVhtfmk(de<( zW3$KS9@{*=@Yv~b(BqKD5szaYCp=DhJoD_~S?u|y=R2NrJ?DEa^jze*#B;spR?nTD zyFK@K?(;n5`L*Xo&r6=)dEW56<$1^RN6();pL%(Cwf0K%O7hC|GJDy)s=Nky)p`x_ z8tOILYpmBeFYGnmYl7Dduen~1Ca({?Hh3NII^lKN>#Wy#uUlRZyq{7kf8)H+ir0UhTcsdz1Ge?+f1F`yiiIK3#pZKIuMLK7~F-KE*yI zJ_CGed?f!e^q-B%dih(|q%MOMQF$midk=a=VK;y2Q7soxgA z!+vMPK-@~~CH4`E#KGb&;;v#xsJOdWB~B7&inGMo;#{#wTr4gT_ZIgNSBR^`L&d|y zBgCV`_r#CIPsPvuq5mlVN&Zv(r}@wDe;VKs;1%E#APSfgFgIXHz_NhGfTnGgn zUiyXfPI6f+b~#azXF#RA1L zMWdogu~M;G@rmM7#csth#aYF9#n+09iXRl$6gL#N6n7ko`-;b{8Rc8b*~$gVRmzW* z8K#A|axG#GHtE5lbUhMXZZh zAF(xJcf|gPuOlu-T#L9FaXaE}#G{BO5zkam#i%%ykIGNwuacO8esZB-Yj3)R)?HR@C9XE7l$aWVNZ z^)V!7PRzWRcViaDEQ(nYvn-}DrYUA+%$As~j+pH+J7d0#*%xy#=5Wl>nBy@gW4?=d z5X;BPV_%Ogi5(C-E_QxwQ|y-5t+Cr8*tnoLWt=9?5LX^o6E{9?LEN^uV{sSbuEpJqyAyXW?w7bfHe4I8P0%K5)3h1d zOl^+VuC37a)%Mp8($;H7Xh&(sYR75UXm@MB*8ZTquDzwbqkWj*mf(@#oghl^Pmm_a z6BG&E62cOCCPXAeCB!7eC1?^760#C(3H1q65}FcrCmc=qG2zcdF3~;FGtno};g=YY z*fz0UVu!@n5<4e$P3)Ffn)r6&-o&R#os;5{vXe@Zh9u2Qnw{iKnwPX7X;ISIq{~U) zCtXXrk@RcQ^JFgBJ=r7KJ2@!1Lvm8GF1aeXHhFCFxMY$%A$dk}WAdux?aBL+e@Xs5 zrCmx`N>oZrN_>hoB|oKK${Q*3Q`Vv znR+nwLF&V__G#VHa?`A7W7DRl%}AS-_DUjALE=>B4m3x+Gnuu0Utk_12Z^`soJf zYIK8j<8%{rvvqTI@9N&uEz>R6t<V@ zdTM%ldS-f7dSQBX`oQ$s^t$w6=_Av}q>po?&rF}4?o6MTz94;3`qK2q^rrMr(zmCd zPrsYtp3y0zS4Mh%;Wn`d<17eY{?)H|TTqCcRZ(q_^vP>-*@3=K#q` zRr)ph5A|F0+w?p1yY+kZ`}G&~4>Ca}lgVec%JjmvCgywY5QRl?v zXmS#BvU7@aN^{C`Dst*_96952-prYt%jL>)!*l!Rj>sLAJ0^Er?&REQxifQT<*v&8 zGvnkCq%(TF?()7ORL(^K* zdef(-eWp{Uv!)BCi>Aw_E2f`JPt4HFn%&G^W?!?|9AK81JD6k4I&NAnisi$J@ zW3Dv!GY>G=mTMU-ImQj|~mW`IpmaUdAEW0dU zT8>*zSWa3_Tkbe44=s-^&#chOT6wF#Rce)671p-acGfU!tW{%8w5C{f)(orFnr|(z z7FzpS>#ZZKqpfdPv2}uVlGSOQYkk+c(7MRF)Y@omvhJ~7vOdiB&u^a}pRdoixl|MFrT>iZLFY@mf_!l_T1xW?E0)0VNK~6zQ!O()S1yc)V z7tAYITF_XqqF`0Qwt_DTb`|U?*kABf!84niO=R=8No{hQ!q&#t%@$@0w<&G0wsc#j zEz6c;v)QU_)wTh)8rvA#I2*Q2u&uJKvu(GXwq3D3v^};xD};q?p53zG^{3w4DVg@!_7VRhk@!exbP3%@KpUwF3&6e)@#i?WKW zMfpXxqCQ3CMO8($MfF9bXkyXiqG?4li)IyVDB4!Ex9C98p`xQjCyGuLdle@a4=-L< zyuEmL@!sMC#Yc*d6`v?RReZudxrdPq5FhFR(AOFSoC>zi(e>-(cTp-)#Tfe!zahe#w5#e$#%(e$W1! z{h|F&`&0Y#5^+gzNtcptC1E8!OOz$55>rWW`N8r-<=>WnUw-q2+lT;=3SapjUvV2j H`R)G!3PD!Y delta 11268 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