From 587e676d189ac4b621ac88a8aa63ae0378c54e82 Mon Sep 17 00:00:00 2001 From: Sean Doyle Date: Thu, 11 Oct 2018 15:39:38 -0400 Subject: [PATCH 1/6] initial commit --- .../project.pbxproj | 349 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 11680 bytes .../xcschemes/xcschememanagement.plist | 14 + .../JSON Encoding App/AppDelegate.swift | 46 +++ .../AppIcon.appiconset/Contents.json | 98 +++++ .../Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ .../Base.lproj/Main.storyboard | 24 ++ .../JSON Encoding App/Info.plist | 45 +++ .../JSON Encoding App/Student.swift | 7 + .../JSON Encoding App/StudentManager.swift | 20 + .../JSON Encoding App/ViewController.swift | 20 + 14 files changed, 669 insertions(+) create mode 100644 JSON Encoding App/JSON Encoding App.xcodeproj/project.pbxproj create mode 100644 JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 JSON Encoding App/JSON Encoding App.xcodeproj/xcuserdata/lambda_school_loaner_18.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 JSON Encoding App/JSON Encoding App/AppDelegate.swift create mode 100644 JSON Encoding App/JSON Encoding App/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 JSON Encoding App/JSON Encoding App/Assets.xcassets/Contents.json create mode 100644 JSON Encoding App/JSON Encoding App/Base.lproj/LaunchScreen.storyboard create mode 100644 JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard create mode 100644 JSON Encoding App/JSON Encoding App/Info.plist create mode 100644 JSON Encoding App/JSON Encoding App/Student.swift create mode 100644 JSON Encoding App/JSON Encoding App/StudentManager.swift create mode 100644 JSON Encoding App/JSON Encoding App/ViewController.swift diff --git a/JSON Encoding App/JSON Encoding App.xcodeproj/project.pbxproj b/JSON Encoding App/JSON Encoding App.xcodeproj/project.pbxproj new file mode 100644 index 0000000..611f54f --- /dev/null +++ b/JSON Encoding App/JSON Encoding App.xcodeproj/project.pbxproj @@ -0,0 +1,349 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 84DF10BD216FDC500082DF33 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84DF10BC216FDC500082DF33 /* AppDelegate.swift */; }; + 84DF10BF216FDC500082DF33 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84DF10BE216FDC500082DF33 /* ViewController.swift */; }; + 84DF10C2216FDC500082DF33 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 84DF10C0216FDC500082DF33 /* Main.storyboard */; }; + 84DF10C4216FDC520082DF33 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 84DF10C3216FDC520082DF33 /* Assets.xcassets */; }; + 84DF10C7216FDC520082DF33 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 84DF10C5216FDC520082DF33 /* LaunchScreen.storyboard */; }; + 84DF10CF216FDC710082DF33 /* Student.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84DF10CE216FDC710082DF33 /* Student.swift */; }; + 84DF10D1216FDDC60082DF33 /* StudentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84DF10D0216FDDC60082DF33 /* StudentManager.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 84DF10B9216FDC500082DF33 /* JSON Encoding App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "JSON Encoding App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 84DF10BC216FDC500082DF33 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 84DF10BE216FDC500082DF33 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 84DF10C1216FDC500082DF33 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 84DF10C3216FDC520082DF33 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 84DF10C6216FDC520082DF33 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 84DF10C8216FDC520082DF33 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 84DF10CE216FDC710082DF33 /* Student.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Student.swift; sourceTree = ""; }; + 84DF10D0216FDDC60082DF33 /* StudentManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentManager.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 84DF10B6216FDC500082DF33 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 84DF10B0216FDC500082DF33 = { + isa = PBXGroup; + children = ( + 84DF10BB216FDC500082DF33 /* JSON Encoding App */, + 84DF10BA216FDC500082DF33 /* Products */, + ); + sourceTree = ""; + }; + 84DF10BA216FDC500082DF33 /* Products */ = { + isa = PBXGroup; + children = ( + 84DF10B9216FDC500082DF33 /* JSON Encoding App.app */, + ); + name = Products; + sourceTree = ""; + }; + 84DF10BB216FDC500082DF33 /* JSON Encoding App */ = { + isa = PBXGroup; + children = ( + 84DF10BC216FDC500082DF33 /* AppDelegate.swift */, + 84DF10CE216FDC710082DF33 /* Student.swift */, + 84DF10D0216FDDC60082DF33 /* StudentManager.swift */, + 84DF10BE216FDC500082DF33 /* ViewController.swift */, + 84DF10C0216FDC500082DF33 /* Main.storyboard */, + 84DF10C3216FDC520082DF33 /* Assets.xcassets */, + 84DF10C5216FDC520082DF33 /* LaunchScreen.storyboard */, + 84DF10C8216FDC520082DF33 /* Info.plist */, + ); + path = "JSON Encoding App"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 84DF10B8216FDC500082DF33 /* JSON Encoding App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 84DF10CB216FDC520082DF33 /* Build configuration list for PBXNativeTarget "JSON Encoding App" */; + buildPhases = ( + 84DF10B5216FDC500082DF33 /* Sources */, + 84DF10B6216FDC500082DF33 /* Frameworks */, + 84DF10B7216FDC500082DF33 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "JSON Encoding App"; + productName = "JSON Encoding App"; + productReference = 84DF10B9216FDC500082DF33 /* JSON Encoding App.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 84DF10B1216FDC500082DF33 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1000; + LastUpgradeCheck = 1000; + ORGANIZATIONNAME = Lambda_School_Loaner_18; + TargetAttributes = { + 84DF10B8216FDC500082DF33 = { + CreatedOnToolsVersion = 10.0; + }; + }; + }; + buildConfigurationList = 84DF10B4216FDC500082DF33 /* Build configuration list for PBXProject "JSON Encoding App" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 84DF10B0216FDC500082DF33; + productRefGroup = 84DF10BA216FDC500082DF33 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 84DF10B8216FDC500082DF33 /* JSON Encoding App */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 84DF10B7216FDC500082DF33 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 84DF10C7216FDC520082DF33 /* LaunchScreen.storyboard in Resources */, + 84DF10C4216FDC520082DF33 /* Assets.xcassets in Resources */, + 84DF10C2216FDC500082DF33 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 84DF10B5216FDC500082DF33 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 84DF10BF216FDC500082DF33 /* ViewController.swift in Sources */, + 84DF10D1216FDDC60082DF33 /* StudentManager.swift in Sources */, + 84DF10CF216FDC710082DF33 /* Student.swift in Sources */, + 84DF10BD216FDC500082DF33 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 84DF10C0216FDC500082DF33 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 84DF10C1216FDC500082DF33 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 84DF10C5216FDC520082DF33 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 84DF10C6216FDC520082DF33 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 84DF10C9216FDC520082DF33 /* 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; + }; + 84DF10CA216FDC520082DF33 /* 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; + }; + 84DF10CC216FDC520082DF33 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 4L7P3ZX586; + INFOPLIST_FILE = "JSON Encoding App/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.lambdaschoolsd.JSON-Encoding-App"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 84DF10CD216FDC520082DF33 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 4L7P3ZX586; + INFOPLIST_FILE = "JSON Encoding App/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.lambdaschoolsd.JSON-Encoding-App"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 84DF10B4216FDC500082DF33 /* Build configuration list for PBXProject "JSON Encoding App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 84DF10C9216FDC520082DF33 /* Debug */, + 84DF10CA216FDC520082DF33 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 84DF10CB216FDC520082DF33 /* Build configuration list for PBXNativeTarget "JSON Encoding App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 84DF10CC216FDC520082DF33 /* Debug */, + 84DF10CD216FDC520082DF33 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 84DF10B1216FDC500082DF33 /* Project object */; +} diff --git a/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..85bfab8 --- /dev/null +++ b/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..9b4b15cec9b59286287f2ec7067c36ae3b6f4de3 GIT binary patch literal 11680 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 C{(aQ| literal 0 HcmV?d00001 diff --git a/JSON Encoding App/JSON Encoding App.xcodeproj/xcuserdata/lambda_school_loaner_18.xcuserdatad/xcschemes/xcschememanagement.plist b/JSON Encoding App/JSON Encoding App.xcodeproj/xcuserdata/lambda_school_loaner_18.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..4bfa8e2 --- /dev/null +++ b/JSON Encoding App/JSON Encoding App.xcodeproj/xcuserdata/lambda_school_loaner_18.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + JSON Encoding App.xcscheme + + orderHint + 0 + + + + diff --git a/JSON Encoding App/JSON Encoding App/AppDelegate.swift b/JSON Encoding App/JSON Encoding App/AppDelegate.swift new file mode 100644 index 0000000..6736109 --- /dev/null +++ b/JSON Encoding App/JSON Encoding App/AppDelegate.swift @@ -0,0 +1,46 @@ +// +// AppDelegate.swift +// JSON Encoding App +// +// Created by Lambda_School_Loaner_18 on 10/11/18. +// Copyright © 2018 Lambda_School_Loaner_18. 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 Encoding App/JSON Encoding App/Assets.xcassets/AppIcon.appiconset/Contents.json b/JSON Encoding App/JSON Encoding App/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/JSON Encoding App/JSON Encoding App/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 Encoding App/JSON Encoding App/Assets.xcassets/Contents.json b/JSON Encoding App/JSON Encoding App/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/JSON Encoding App/JSON Encoding App/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/JSON Encoding App/JSON Encoding App/Base.lproj/LaunchScreen.storyboard b/JSON Encoding App/JSON Encoding App/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..bfa3612 --- /dev/null +++ b/JSON Encoding App/JSON Encoding App/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard b/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f1bcf38 --- /dev/null +++ b/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JSON Encoding App/JSON Encoding App/Info.plist b/JSON Encoding App/JSON Encoding App/Info.plist new file mode 100644 index 0000000..16be3b6 --- /dev/null +++ b/JSON Encoding App/JSON Encoding App/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 Encoding App/JSON Encoding App/Student.swift b/JSON Encoding App/JSON Encoding App/Student.swift new file mode 100644 index 0000000..32cb3bd --- /dev/null +++ b/JSON Encoding App/JSON Encoding App/Student.swift @@ -0,0 +1,7 @@ +import Foundation + +struct Student: CustomStringConvertible, Codable { + let name: String + let age: Int? + let cohort: String? +} diff --git a/JSON Encoding App/JSON Encoding App/StudentManager.swift b/JSON Encoding App/JSON Encoding App/StudentManager.swift new file mode 100644 index 0000000..49dcda3 --- /dev/null +++ b/JSON Encoding App/JSON Encoding App/StudentManager.swift @@ -0,0 +1,20 @@ + +import Foundation + +class StudentManager: NSObject { + var students: [Student] = [] + + var dataURL: URL? { + let fm = + } + + let url = URL(fileURLWithPath: NSHomeDirectory()) + .appendingPathComponent("Documents") + .appendingPathComponent("students.json") + + func writeTOFile() { + data.write(to) + } + + func fromReadFile() { +} diff --git a/JSON Encoding App/JSON Encoding App/ViewController.swift b/JSON Encoding App/JSON Encoding App/ViewController.swift new file mode 100644 index 0000000..c9e9438 --- /dev/null +++ b/JSON Encoding App/JSON Encoding App/ViewController.swift @@ -0,0 +1,20 @@ +// +// ViewController.swift +// JSON Encoding App +// +// Created by Lambda_School_Loaner_18 on 10/11/18. +// Copyright © 2018 Lambda_School_Loaner_18. 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 ef1ae418b1c4dd106666138d51ed133338084cb8 Mon Sep 17 00:00:00 2001 From: Sean Doyle Date: Thu, 11 Oct 2018 15:48:23 -0400 Subject: [PATCH 2/6] Code done for student.swift and StudentManager.swift , working on story board --- .../UserInterfaceState.xcuserstate | Bin 11680 -> 12761 bytes .../Base.lproj/Main.storyboard | 53 +++++++++++++++++- .../JSON Encoding App/StudentManager.swift | 23 ++++++-- 3 files changed, 69 insertions(+), 7 deletions(-) diff --git a/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate index 9b4b15cec9b59286287f2ec7067c36ae3b6f4de3..90b751ae3baaad001547b185c6cb07a5f80d8c11 100644 GIT binary patch delta 7721 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 Z4=1lru20@_tNtL3Z<+GW`Xl-2{{i(D+MECY delta 6724 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 PNB*;x?Rfdfj|urdF7DIu diff --git a/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard b/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard index f1bcf38..f5af87c 100644 --- a/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard +++ b/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard @@ -1,7 +1,10 @@ - + + + + - + @@ -9,10 +12,54 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JSON Encoding App/JSON Encoding App/StudentManager.swift b/JSON Encoding App/JSON Encoding App/StudentManager.swift index 49dcda3..b8cf6df 100644 --- a/JSON Encoding App/JSON Encoding App/StudentManager.swift +++ b/JSON Encoding App/JSON Encoding App/StudentManager.swift @@ -4,17 +4,32 @@ import Foundation class StudentManager: NSObject { var students: [Student] = [] - var dataURL: URL? { - let fm = - } +// var dataURL: URL? { +// let fm = +// } let url = URL(fileURLWithPath: NSHomeDirectory()) .appendingPathComponent("Documents") .appendingPathComponent("students.json") func writeTOFile() { - data.write(to) + //data.write(to: url) + do { + let studentsEncoded = try JSONEncoder().encode(students) + try studentsEncoded.write(to: url) + } catch { + print("Error: \(error)") + } } func fromReadFile() { + // Data(contentsOf: url) + do { + let data = try Data(contentsOf: url) + let studentsDecoded = try JSONDecoder().decode([Student].self, from: data) + students = studentsDecoded + } catch { + print("Error: \(error)") + } +} } From bc5185eb541d31492f9d84553102fa85aece5ae2 Mon Sep 17 00:00:00 2001 From: Sean Doyle Date: Thu, 11 Oct 2018 16:09:55 -0400 Subject: [PATCH 3/6] buttons hooked up --- .../UserInterfaceState.xcuserstate | Bin 12761 -> 17550 bytes .../Base.lproj/Main.storyboard | 26 ++++++++++---- .../JSON Encoding App/StudentManager.swift | 7 +++- .../JSON Encoding App/ViewController.swift | 33 +++++++++++++++--- 4 files changed, 54 insertions(+), 12 deletions(-) diff --git a/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate index 90b751ae3baaad001547b185c6cb07a5f80d8c11..fdc6093984bdf2f5357d1447575659c9a82fd1e4 100644 GIT binary patch literal 17550 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 diff --git a/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard b/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard index f5af87c..61ee600 100644 --- a/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard +++ b/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard @@ -38,22 +38,30 @@ - diff --git a/JSON Encoding App/JSON Encoding App/StudentManager.swift b/JSON Encoding App/JSON Encoding App/StudentManager.swift index b8cf6df..8e0e810 100644 --- a/JSON Encoding App/JSON Encoding App/StudentManager.swift +++ b/JSON Encoding App/JSON Encoding App/StudentManager.swift @@ -16,6 +16,8 @@ class StudentManager: NSObject { //data.write(to: url) do { let studentsEncoded = try JSONEncoder().encode(students) + + try studentsEncoded.write(to: url) } catch { print("Error: \(error)") @@ -31,5 +33,8 @@ class StudentManager: NSObject { } catch { print("Error: \(error)") } -} + + + + } } diff --git a/JSON Encoding App/JSON Encoding App/ViewController.swift b/JSON Encoding App/JSON Encoding App/ViewController.swift index c9e9438..aad42f4 100644 --- a/JSON Encoding App/JSON Encoding App/ViewController.swift +++ b/JSON Encoding App/JSON Encoding App/ViewController.swift @@ -10,11 +10,34 @@ 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! + + let 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() + } + + + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + studentManager.readFromFile() + + } - - } From 5099d7dce042c9ec4a828752d237e2b8abbb620b Mon Sep 17 00:00:00 2001 From: Sean Doyle Date: Thu, 11 Oct 2018 16:27:52 -0400 Subject: [PATCH 4/6] added print button and more code --- .../UserInterfaceState.xcuserstate | Bin 17550 -> 17670 bytes .../Base.lproj/Main.storyboard | 52 ++++++++++-------- .../JSON Encoding App/Student.swift | 4 ++ .../JSON Encoding App/StudentManager.swift | 11 ++-- .../JSON Encoding App/ViewController.swift | 14 ++--- 5 files changed, 48 insertions(+), 33 deletions(-) diff --git a/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate index fdc6093984bdf2f5357d1447575659c9a82fd1e4..4c22996331b0221259603eaca3e6fca617a4df53 100644 GIT binary patch delta 6042 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 + + + @@ -38,35 +59,22 @@ + - - - diff --git a/JSON Encoding App/JSON Encoding App/Student.swift b/JSON Encoding App/JSON Encoding App/Student.swift index 32cb3bd..1cd1037 100644 --- a/JSON Encoding App/JSON Encoding App/Student.swift +++ b/JSON Encoding App/JSON Encoding App/Student.swift @@ -1,6 +1,10 @@ import Foundation struct Student: CustomStringConvertible, Codable { + var description: String { + let result = "" + return result + } let name: String let age: Int? let cohort: String? diff --git a/JSON Encoding App/JSON Encoding App/StudentManager.swift b/JSON Encoding App/JSON Encoding App/StudentManager.swift index 8e0e810..e0a86d7 100644 --- a/JSON Encoding App/JSON Encoding App/StudentManager.swift +++ b/JSON Encoding App/JSON Encoding App/StudentManager.swift @@ -12,13 +12,15 @@ class StudentManager: NSObject { .appendingPathComponent("Documents") .appendingPathComponent("students.json") - func writeTOFile() { + func writeToFile() { //data.write(to: url) do { let studentsEncoded = try JSONEncoder().encode(students) + if let string = String(data: studentsEncoded, encoding: .utf8) { + print(string) + } - - try studentsEncoded.write(to: url) + // try studentsEncoded.write(to: url) } catch { print("Error: \(error)") } @@ -34,7 +36,8 @@ class StudentManager: NSObject { print("Error: \(error)") } - + func create(name: String, age: Int?, cohort: String?) { } } +} diff --git a/JSON Encoding App/JSON Encoding App/ViewController.swift b/JSON Encoding App/JSON Encoding App/ViewController.swift index aad42f4..0d20588 100644 --- a/JSON Encoding App/JSON Encoding App/ViewController.swift +++ b/JSON Encoding App/JSON Encoding App/ViewController.swift @@ -22,15 +22,15 @@ class ViewController: UIViewController { let 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() + 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) { + } override func viewWillAppear(_ animated: Bool) { From 1cf3fbda9d03682ce5f3ff55c0c43aea20b59dbf Mon Sep 17 00:00:00 2001 From: Sean Doyle Date: Thu, 11 Oct 2018 17:20:51 -0400 Subject: [PATCH 5/6] added print buttons and code --- .../UserInterfaceState.xcuserstate | Bin 17670 -> 27565 bytes .../Base.lproj/Main.storyboard | 3 +-- .../JSON Encoding App/Student.swift | 5 ++++- .../JSON Encoding App/StudentManager.swift | 8 +++++--- .../JSON Encoding App/ViewController.swift | 6 +++--- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate index 4c22996331b0221259603eaca3e6fca617a4df53..1510415f06b8ec77d6eed8280274be101fc8a24d 100644 GIT binary patch literal 27565 zcmdVC33!u5*Ec?MZ{6E;FMCSap(W|Q&?Rk}Hf_@-Nt?2k(57wZO472U_l*b$xFI46 z3N8DhxS}9CDyWF;D57kFfQTTn2nhc(_uZ5hczmAs`hVB=K3{vKoy>aX%*>fHXMSf! z)mK~X4GP6!gb{^k#2^-N+gkDB-(R}n8T8I{*H_=kG60JfXqL0u9 z^fCGbZAIJAXJ{Y#7VSp|&_Q$v9YH72DRdhBjLxBp=ozo#N8=crfKzcAR^xQ6!?`#Q>#+fs;E~vjN8wUjfopLcuE%5W z1UwN>!ZYwp{2ZQzXX6*~eEb?-jF;dh{5F0EugCA=_wYw}Gv0zf$6w&x_#30f}nCeaq zphBrIY9JLy#Zw7XGL=RdC?i!!6;URtm>NcvP$MZbWudC5I?6^(p#*9wHJzG4&8Fs1 zZ&8b>B~%mDOf99BQOl_n)Mjc6wUydNZKrlnJE>jNXVmA^0qP)ih&oIiq0Uj~sb8oI z)J5tN^(%Fa`h&Vn{Y7J%qMd1X+Jp9`JJ8+eo^&rdnvS7k={P!`PM`(@;gdRax(pI{j9!rm-$J3K(o)+k-^mKX_J)53GzeK-G&!yMVZ`1G4>*;st z_vrWO59kl+kLV5bM*35FGrgVug5F1eOYf%-(BIR?=^yB`^l$VP`gi&&eT}}sPz=p5 zj0@w+xH0aG597;pVmdQjn66AWM$YtM`ZE0(1ryDrFe)aS$zh5Z6I0BLU`m*A%y?!3 zGm)9ZOlGDqPcct3JR>kOn3>EA%!|zH%p1%?W)ZW5d7t@!`H=aD*}#0ve8OyGHZfl? zyO}-Am&{kpKIRB>lsU$nWKJ>XnO~USm}|@*%uVJFbC-F*(k#O|vo5SR>%;o8o!HK7 zFSZ{$h|OfRY!;i%=CJv!iN4Pkvm;qEJBqDj>sUM6z&5fISb?3&KEqC9XR)){IqXa9 z%j~P{e0B-DjNQQQWOuQjv7fVFuwStU*zein>?!s@p!nty8 zoI4l9b>KR3ow&|iH?AkwiyOcxxdd(yr{S`=e6Ely;YM<1u8OPX8n~ypY1}OC1#T`k zpL>m4$SvWPb8EPFxDU9E+;;9WZV$JgJHQ>|e&9}WXA67OHda?3LN3S^xgmGtg?vo8 zhOjEj1p5&9-y$)JdX!e1?e=EmfjoJNr<;)sdGiea4WCvb^V6!+O?9>^d%d~TqOL1# ztg+NKl*oESDAOZS!y_U>BO_y?LL<{uv7xEakx`*hDn*nsDk3T-E;7>5Z~&5{eydR+ z3PK%FN7M;*MqN->)Qx9(j(6gnc^BT5cjMi8kJTs`bw?qn2kMD>q28zu>dSlbUi=IE z%lu+~C%=pTod1Fk0kTqU7IRg7owc^Xt}1P?jx{$}%1UG%)s}K|V|7D%nYE$LW@vy| zyQa=osL!zv6SG+irInT%3sfL|)i>6vE%pX$t+@e&Xo*abW41S>)z#EjTcE;xB3tbZ z&||4ss@ZNS6AM}!Cg?5obv9symxC)NYi(KGI6F`wg;X}1xwZmYt8GwQMm1JwYs>2( zyTMWoa@tbXnmtHwDTO=|&5p_l$u15CMx%JtZz+mFu_%t0@!q`8Qj~xOp+w%759bYp zAu+|Jb!CKAE>DRpv|XEzG?8zqFxwmLhPp;usU;0)b95#RrK5gLNX`2-Aq^kMha5s$ zn4MWD8|5G!nV+M8%|qe8%~B1+GSYz+;z#?ppHo2AHV8JAX9+hD7!t|qwxw5e(4+OcMP z`-Fp{m?%e;O{jwJ!gn1~X08n#RTio*G)R4|Le(%nWL{5bMpejIA`8@}<~24{TWcR_ z!_n0`G=>azJs;eJY<*Vc`zZBx=@Eo-O@NvS`D$dA<8I5fUQ=9_EKH8z+> zRa?|nSm$-MX4{0NXdIe=jKgvb591sSPC`>rzZGaQnu4A}Pa_@)d{4d?-<$8l_vIns z88i(&i>9L)XeQsEAHaw519=6nVJjRz^lg z#>P#NM(q_cYV-Io7`4>FLqa2BLmLz}2U8ZH*HOPEOZbqGoKs(Ll&0 zi&fiTsj*8Vz8&pqMmx|>K9N`R8IB4*M_(e?9lk)j(H=gDPv%pWqOZ_Qw3k=GEKlXr zhC_7^#mF%74a9&r`^bbWGLmL==89S?5uGKn;D=mmN5#WBLQ={`inB^uwiD3dX0kjT z6dgs!AEW38*yn%b(_wGd@M-xWDO0w$so)GcJEC>fi^66pIwOf2pT{{TG2=X${=e{9 zeAmP168aTgh8^WMbOo(IR|nh04Hs79;09|AZ1(1w`k`elnheNjK8MfdBl&_5)%K6C zgt-@waS(nT-9-JG(VyrBuj6x@(JgeF&*Ss?kRoY56-fhFB6|W=Fl=P|kvp~+IczWz zdmdm^BJ0v_Ry;awmST)4B3=JE8wf`ju15>EP>&hRN^9N`;fy_C^>_+-Ov)5@W04A2U+6j1oy$A zWP0|+{cwLgfFI6};7j5%M>B@Pce)9{(yopMQ;Cz`wo<9|yH(CjJrsgiqpAD42f(6d)zPkYB{V$-f2Rw80Ic z!f8-v53$o zXv{U%>Io$>|F#wAK)h9xqxxel!r`&h1{M)eIjr@Sb+s0|wWbjc=XEw^c$lI@mQ*&j zp-eo>gg%lUpBfz=6{}Q-ho-5cRH2bkQBk3BaSC;4nkqFtE={3~j!cg(8Xp^75*=A& z%_nsamj1;JP&)W~4c`F!2mS+J$A9um_$I!2DZYts;oJODeh2>!nW_pHtoD|f7Ap?u zeTK%G8aOse<7lu{5Q_{jFX*u%dG+Mb21x;rB^j*^)fPz#-$%Qa;|CO?Fhx-`zl>kY zujfDDKWSCMDUNaldMPK$nR4Nm^DFq3ODQ+Xo$}yU@vHeYgx+3{wa|{de4Dk-21ce5 zS^s~|m})MqGFa-(HZm9`vcCVETWX`oT-|61NpY4oq*5gBNg??^%x@}y>iAfHI#Hd0 z|Lgd-3I9VCtfD9? znu_5+^*_8nkp(+B zd&xR>>fEb$|ETDg*xCqEX4AzMjXt!KbZLY8r+la+pYO~hEw17k+$3jwiNv!ss zDFdUc6W?J(m_d_kFj~epgr)II4z$Vk0YMfAS zd3ctUAsKftD?3N`B%5A4gHv-(ZmVGrO5_(jdS=bn=Q@mKkZy!C)Dvx4#++P8HWkC+ z`%%6(56*o;EaVS~+vAB5R5nCy^mJA5XT*-L8>!h;ZUx=>ngYe2}Q2gHYr zYp5sTObGi`8TDxp9)^&!drMh}M%^+jU_`c-$}_;kDbFy&z9A0}3zvg|l^m2vmjAOq zHPwxTZt~L&KJNA^LpJ;m1Nx_xnbjm53*q-m&FO}g@TIZVqFe~4AVhVqZ%EZcI19p~ z8mkIb5FP;Gb>%iqA%v44{9R>ZCJ9F(Lve`RgZ8X*kr(N}DBdXm2%Ld>8ti#lD3XUePUvIz~{A^t=ASObX{X`Wb_ zM(BjLn4_c3S@{qK0mS@ism>tzp&qtleM3H}6TY+R+Ui`=ZVH6wTkK+g;X8Y@q0&gk zEF2-OdxOnL$^vbivD~WBLRbUg@s+kr5)b|5w$@jR^9*>x-Lp07N#CK5P8v&XA>kpJ z7rfb)o&jOtmD6Tagw1fvT?hBw7E}uN+^3No+2PiEtQe|5W>f8I z>D$HDR>uIXqy@q?(t8qm$Qg;pJAhve5L*pBtZm_s9jLhnWvW_Aw=Dzxe5qq&pZfaw zFBE7;tPm+CeV0$Ql~_x^eer5bzn?T}kGCG$Zrt+P&I@s-lsz^tpe^r_>hsch@6+kuMxro+fgo-4uu)>kjh7A6x6nR^5!5UKRRdomq@-& zwsB8u@8n0APlg?G-#xj!_N9*X^&?hHzH6y}m`cXMG9&k9E}A+(@vh>sVwqx{;=1Ce zhdC6-6u&8sD4HPUSNave7;FKI!6teylEb%6^bUHX7+MFYgU$4Nt>xO!aES-)XE>Q} zr7bg>aHyeWPPLu;ZPz&AmxEg*zhk6E|BLzBcE*qq`_Cw9JEGF6bF2wzbi}pb8RDt* zbn@)y8Re<+#Gb+M8}69`p%BmRo;jX@kecb)+f(h?sg)lY;y4mIq!nrv|C9CdP>KzP zRL4vp{i}pDo0!Ag(%-i0i_9T8V1^#bGa}KfZC4dom#ZM=p-gym=7{UDO%2t6F{*_U z-CQ=AyBpxb`;S*K@U`dpW79>+1k^_n)3a}(nm`JNZ@JnQs zBw0e4WJpb7)J!aqV{Ll?wf{Tn+pY`?7ti(P(z)JZ-D2-JHJ8b0kR0$E5YG+dvLGBs zay5XC4f_pBtE-=2vsP3#kPCroi(Fe<8V0v|3MK4rL}wy-5V~F<>OweRZ)u}#tQ5zP ze=KqZeaa7D6kP!&(FaB(98duXuxF-&4v>e8aG^W``cVlZX#>tqMgrV*&IXj$tLP21 z7%fBO4()wFW^IP6qc70cfXX_8et`Yt99)`Qg$s|naQEPZJphH(0e8ba!4?~iV{sB7 zu5tivH5jl~1ZCBTC*x-TS2Y*E0f?&AfTh}qci=C<0`fgR4aliK@EwYV1Fs*|h3W;E zs8~uxWdj;&I8{N7p(aw(s28XOfOc9(Z2)}J*MMj`1vsV~G@{+;06Lfs1x3UEN5F^8Db z%vI(->j9Xa{%kzpd5YNzb{sn$Fgh#Pj{uu#wP~GZ7?^Qo5aoG-sIME z+W|v!mb>BPrU&OwmBViI_GrT+0D6|bGWm{d5CkZ^Hk^g z&TE{vIv;fY#rdv_%%!JGyi1--nac#17hRUQY;yV5<($i1S8vzeu8FQj*U_$m>jKwz zTt9a`;dFXKhsr4-LeA;uN=LXM%o>#nFyn1@6yheCU^qTMW zf!DWQmt`)pUa~ZqS@x7{p=_hn5 zpaXgZXalMPUJQ6Y;Ap^|z%GHRKuh3rf$sz!47?T8DJUh#5;QAlebAAhJ00X5(mPaj zc)7#J9e(V{bnMr$pyRlXZ*}~<dpoo{sM z+9jh)eV5m}?CNs4Ye3hOuA{ro>$* zI5W60xG8vF@ZIjcyBBt!+I@ZZA46P2VnfP9=7sDGx!R*!4_%MRJ=XR(-qWRLY|qM` zul3yB^H#6ky-dAk^!m8hh2BBEwY?|yUfcUbACErCea7@@?sK>=*EhCrRo^%J?(awS zi|SX|Z(+Z0`&0d+`&;|J+5f-*c0k;K+5yc2j)l61szS$xt_?jM77&&bHZ|-4><$=2g-d98^s$qBgLFuE+QchKFQvMO%FT6B-Vff()j|fe~(-EIUT#M`+EPDCy_FW9HYIJlnpS71XQ}t4`=l49zmfivrn{y>vsQC8BPwH3 z#`a7$GduI;%wyUv+EVRm?bWQ9tSMQaWxHn^vfs!)lhZH9ma|Dm>9TaM=uYJJ%&pD+ zI1lA%^IpmOF~4{InEX!*xPttGg$3vJO8sR0ZiBC(#IVM2)0k>}(fC7QpTfq%okdd-(X_ zUykTFqI$%Z60Z_-$p<6Zk*1MrM&2{$nVZcwMrlVa8g;cat@O3hU&~U;=9OKvBwFTL zeko5ZpId&RBC+C?ii?%WmGdhvThpv>Sg(!F9KCq-t*X4Ll~oU_P1WmboNGqbY^?RE zt*ZU3u4~=+x&!t7>!;VB8WTU})iGCX*|rsSY#(m_q`?mkn0p)hG(OvSdTi3zg=24z zD;oE~c<=GG7BT&f+eMXD`09#Jc3Wri`Wy&ApoEFXfhwU3z|5(X!pkW0$X9(Q(D> z6@Ra+U3qGie${8IV^*(T(|OH{YpJ!3YcH-Fwr>C1>bF06C-j}B^#SW=zl+{&eD~6O zBi}pve)ju2KZyO{oez6{xacF_k7jMa8zyYH`f=sQr#>0{$$^bo8+UF>*!0n-VV|zt z9K3nq7XK|TZgt%{ZR>+=6Sv*iUcdeFj*1;;cb4q@VOR04!=Dv=w(s-o&-Z+x`C`{@ z)$VP368CKWGXBerU&Vg)@z>E`Z`d2P_oHv3zWHch^u7(>#(ew9{R;%EIR`*HqHoquXR z+4to7Q_-ikoK~OSd&Y3)hqI+;fBo71^SyJ^&U>7n|4X-DR$mCeu=%3q;{HoRFP;0f z{@1&gr~l^t+oCIdu6+1=%I|xx7GFJg&35gh z;r6P(V*lEG$8_hHyW{RT-COW?-@iBA&%S@+LCu2)d>1hN*c*noVk6XG)m&J!l{oLHqa{a{y3q1O3Abcf}z%1@PW#oDE3t0zi5fg8nfS4+q4z z8T602fZyJY_X2KvKis=~k59n0$|*o_p9A#vMXCA zzdZP>gA0Z&{8oND{M|yX8M^=TeE>0j{@YA2w;)sRf3AsSGBivew^jcprx8FnVon)8 zNDT%X{Say>F((pm4#D8uvEBP|Hor~c&~R#m#0*O_HJm_VWX8HOFwL180QqwkivFUxeB{uSER-+ z)OczFH4%_;LjWn`#~bB3Vqbz4H)|P-SfNlmYTd@J~5F9v7{cGR3heuB6@rrxI!vwVGN(tp!WM z+pwRnr{3j{@!#>^^T&Bm+xQ>(pZJrju>u8CA5tHIvEgIt69{htu!tvrO2DZC&JwUr zz(u^L001i3F#}X~;`3p4IAqv!%oFMw0Wu~7dJUCz<8sYot$;`*x9udV^{WazQluzt zt-W5nag?Hb0WuEm7I39hUnx3*0ALVs#H9OA98tJAR-sXd_Ne8r#U&+upYpO;a4sc#_iTmBq>hd(XgE~MLX zN#;U5#DAo=;8!dJRokyu3iGFj8 z`i}aZI!^sSo#4;&zwj6Mi~J@2*A>)Huu@LJ=L~h0zYNRc5BU7a-ymcY_oVdk_2yc* zM;EctMwoS`#A`*JF3wsbcxc(Ja7`{sH30qus#7ysCj}9*kVfvlTdITQpI2Kw0lda)VJf9o z*OgX5p)O>wTarYbMD!@DXelnE9Q;V6(@?+VaG*$rBZZ0v;X?_S7BC}VR>0hHS`C{) zFr7hX3fKt*6!gVS0Gu;)#@|74yNOyN>*tVIj3eyh20fG~#TePETvJ zL5YSOb7O63r9tAd-coLX$WjX&6h*z7&ZiB{bOEgwu(N<&1ndfO_Az|Cyk}3j@=23i zJPObzx)=_#EzUpy5?Kl{gOL#+3h+g0W+7O*4( zhEL{@2M(~@h=#ydFk_6P6al%lN!xxn1L3SekD+bQ z4?EpJHx7B&a-m3*fMo*q7O;;gTp=gb$^0Z{O`s=&z=rXWj_K0IO~jvAEZ=OkHPe&G zdFmhYI2xYs8OWRMsMQx!l1-~}nS zOOr$nGFJZB97ytg`hoN#_2YT^1xY1o$IpkI0w+vZ+Ask{f176dMbamt!u&`1hsBha z#l}RJ$HXbi0mb-_;_nrDG3vLLo(E!RKK&ZKfPS5RgI-84qTi(75^z`kl7PDjST5jT z0e2U0h=6+txTk=73Ap!KdI{ZxX3|SxbuWkT5^%_wNiPv_9|89xieG=S)>Y#7J|Mjy zrVm;5L{2#ts))dm9L_-G5alV|W~;M3x)VvF;;|JAMZ^sZ#DhZ|in5`!N>niIWCJ6z z!=5@pvI%%Y1el4c&GjHepb-ny&@PT-Yl&+q2vU)p;mLY&?7ojv=hL>{3|n1ez2weB ze@uS@4CyNk`(S!gGg;hE7?X(TDU!<@y@jmytpYd;NT+vt2imoi-bwGGKNE1MfPssV zt=0gzI0ATYGrfoYQovyX9@va-(|h@R0r10VdTW`!VM0NLLr@>2kF?KAAEl28I9$LH zWXJCL*t8XoqjJJo;FL`+j!Xe~t4RCc3HszC)t#b2?}`#|%EMjsXZivF9O-lPdHNRt zM+-Pcz_Cl|i}WS>R{_TfI9|ZXe2B3@G}(B!x(7I1&4!kPtG5o;795~~ZBL>|k~Mz- zl$yRS-~_(wader!N#CMx(|>`8xr2VC@6z|^zv=t*eRyUejedaVGYCEyDzwANmEiJV zQZ&}o<~9;{R4@@*YKb>Q`$+H7O2DInkF!lr9H7C20mLfomEsz8ctk;zR5k~kEn2H{ zw9+>6(dz0-1w2Rw8%dIY6TPX||BGxd#C~-%&U?Wh;xuMhh9fFPk&!?w9lM8P=UK`) zG0tR)|Emm7_U|f@MTuIByslhM=7PL;dmBV=d8OGdudS2Uh#tf8-T>SNi%IVSt8a^B zeb6#584tz_)G!7_Pg)ZL8;P38oM6xzY~cS0Te!_qmIg&D;P8?@9yB4ML21>}dS(0o z1Q~-sq-k+Qm)z4^4oHsb!$4Q61;trHUx&2r zqEF6D#F4|r({Z+FJ#)2IS6cQOqj*e9L?(n(xAHh?N!TP8lUAf8mkXDP%4uw+^r z#dABULn;AMwn%!-NBVAP9908nk0EX9llemZEstD?4NI-cTcRF5SkYcFA{(`X&Q_zs zkZRGg(dNv_Ol77KoG%o1>U6EjD^6|iTK zhZ7v>FER6Ab}%n9bD38JTq$6yfJZN7Ud0OLH33%5eZpSn;OPOWNa%Kgy zl369-8Ufb|xK6rnKjH>W*zf3^A3u`t^#flFsQ%0fT7#dcptbh2pLAC z6tR;LMQNx+ph!9>Z~sbvg;8p!w-VGos8f!e;|Xb<9BB^)bn6olLmg@0>XJ`xaGgb(Arhuo4=RSc4Q_{fJ4XfP{sl^jsSgY)AwWW!Q7;^ztE@dt< zml)9RV8y|5o8EffW8MMl2281GqG7{_D0I?GChZ-LrNbe*O-@?inGVC_IDIj~Fz+K5=tRu6&4`}i5 z;1J8g*npD_p2K&AwfNAsqzsQE*4*&$R^t-u%7SxxGwVh~&kG=Znpsa4j=?Vq_$3~! zL*)4b$D116lOF7Qw`CkzKQ@q*^C$A=We_>dY!C~|$Xo$~Z_(h^M>ibVyRgAe5I$^o ztYCWx_!Yvdclk7l`rdH7VEYJoUhDn|K(dJcSU|8*Y&09g!izl^j5r`5UKMbYfY%Fn z83+h4H9KfZWK&`Bu}N$)o5HFDJYT>d2p0(W^<``tt7g+#(5v1M@FD@fDd4yMtCkuG664#@JbCB2R#2}l{h3`N6B`?V!)6zoKH3Ym42SP(C;L#%FQerBH* zupnU3w=bZ^T-#`_mX`lRlMS4fYQ?*Q77JPlc`)cn_AUp5o@HmiR?1En@VX`zB+lFL zN{zKuyu-bHtJooWvZPV8s=pv8fQCcjOBlamxwyzd{eeY3qJ4)YzRe}G9X90mi0a

~ZZ{`1jUmv)YZ(Ttjvzy5Z`h?xcZel+b@CE^YEZ|QBym1-3g=}B! zb^&jawy(|qUF&BzVbC4{f9hC2u%A7_vDq;r4zk2Bfiu{{WXWv#*M7}ymkT%{IJT|N z1Pt4IN0_RP^>P|EA@&S=mi<}4z@;4m-r2fT=wM0*`^sNL@pbGg?bm~}M%dq_y=K?H z-D`S^(-8D;ajzkJ#BIWWzXbfnqkBX|c-$is?{AKR>n!#@`+!3n7BH|4Y&l;E`0HgH z%`udYgS`e+frEtJ!+c0_j-_0DG-t4$Ag;-*A0jESq6RM7)LWI|R%N<{)tm?C1FdnM zoEInKyaoJ?fcFXbTLJH120q*h&L7SsO48v2Ek~0gv&~BEtm30u;yFcc9w%MwfWp*1 zwM9cUl-3dajl5kVq0<15uRZj?1PwQ!T^6x+qF0J*m+OMavk(r#Mt8Tf|BHef7?#=au+~R{nTt5LHX*ox7q42s87sd?~@KFJO*SZCA;av2i zhdcH@3g+TqJjh|`7&#D5+ul~tbBUblu`&;&GGDfoagdY2Wwv{@hRf!3t@Ob@^MixF z0z#jjGYI&EfKNW8uZSD+Xj|M+XluBDeL?6c%`*&N!%!|{ISv%a4t*| z@F`LnPRP=Qo#QY?j$enl8m^YBLvCC>H-@uuFkC(a5hu+xa=gkFZ;%2j#513C6cEq$ z;~S)upn98?c&I;?B;ZQ|zAWG~0=|8eYvjg4BjdR7+ys;jjZLOZ+!UNv3|{`?y-g9g zfrBZ0XsL8>MJ5PLuCkV=j{eo5V<`>EY#lCHOaq0gjSuK|FEm1bpR@LeSP2ZZe&~y^qsKQ!qxr zwBOq@?L+P(hn8|vz*pO9DcmNI^4zD~W^N0&RlwH-{D*+SBzvQkagS&z|DcR;UvhgN zRYtgdqB8QQxbz=0Ry)?(LGJLQ>cx}P1<{nro#1|ykbSMEnRY0Y_H(_N`-vDf2@vo< z$u6~UiaRY`DgL`6&DEga;T9j!($clQ1V9^2iI~+MO2Ku2rxA95fQ`N-E)JS zXxoPtu#K#TI#Lszrc|Z^gh!bc8mWp?hQ>vttKbhjtD2swjtWnQ+bZ!&xMgiWR9_Ey z$-I610tle;$X%Bau?g(@yIGF1b#rbmURhAY*Y2!(RkB*KFMz=T-El!J13 ztKdnF_24?+mVoB&Jz8Ds5B2KpExt<70i4^#2UaB_rEm*6s$2WCwsna)c=2@tFdzN{ zt_Uv3AQeUpP)G1rL>;w|9u)&uPV(Tefk0I?#U~6(OiE5srKYLH*CevEIlA1u`~tlJP{D0F2!km;KLYzW zOd}~l0%Tci@QyD5bdd)nA)D3?SMC6qE!1k&z(TE^Sl+-+2`>v+ZT1Ez1g`?XL!t1x zY8rXYP%<#dT5FYfYlmbJp{q07tHfsuq&8bun^r9~n_;UL+W`u+W#e19Bi-ik7{Iuk zvkMPzpdg;%on&4-%X`Dy!t|j>pyD}553Xv@z*FKY&^O?Ub{QVsdjL>yXLzg59UiEY z!IR+O@Klx-px`>(0J`6F{4%(nt;XxbN4&p-$GPv}`|u=7S9tLwl_~&Nv%yq3Wd#iH zEC7dX1Sd1%Vs?T0ow^M!W`TewiH3);P4q~*4s=*M-6%eP4Y%g-0QOVx1ol*V8a#nL zQ&bM%p%>{txYxD&p=a|SKR&nzxC`9HLebPGV&Xf1XMBGY1wQD>V1Q3#vKT!x91PP| zrV8xMHn1{}g?FxB1h2JS@KW`6%yH%f^Ao&QeTMlNUaYg)DBTfWlkUpNxgp#l|sw8iNQr$bIBoPKgT<#fjBXQ$tses{X& zblvHO(=BIT=ibgb=W^#dXPa|_^H^uWd6x5B=hvLy1CO^I&byqyaNgtmmGgP$-<@x} zc)Iwzbaxr(GRP&#CB-GxMeU+-$#f}nF}VzO8R|0JrNqVTQtDFcGSOw8%cm|!TrRj= zbM5Tf)3uLlKi2`SF|KOYbXSdQrfY$#-nGPalxvx5g{#%I%5}W!MAyl#Pr2R)e>p$5 z0Jk8wj&7aZdb;&?>+9CvE!1tG+YqC)YFYZ^}A9!#cojiJY^!DiM(cfc`hsGn{W0=PXkC7guJjy(3JSKWP?ICzP z<1y1?md70M&U@8kk;i);pL^`{xZ-ic)8DhdXRK$OXT0Yi@YU0M8a<0Vi#>;UmU>z| zD?F{9Rh~7T6Fnz;J_S#xID7ef1$uSx>g2Toy!Srx`q*ouOf4&r8Dxbrlk5lC1=%&( zb=eKsE!kh*lsDtec{_W%db@k~1%E!f_gwFV-fwv?@ox5B>;0kk2JcV2H+gUN-s-*G zd#Cr;-rsru=zY@rwD)=M3*MK!FMI#tgMD0m+1z`&{$6?sLQEmd{_loUfa&hp(5f zpKpL~kZ(udzP}f3?5H zKhr6c`0^I^V0=)vg z1A_uP26hhY8YmAm1l9)52z)7UVc?sAivybimj*5mTp9Rb;HQCG0=EV32;39+Rp8#h zeS!M}{|f3IWC$7-R2nocXj;(hpyz{L40<_eLC_mPi-O(?S`xH6Xl>AYL0f}95855{ zWzg3_2ZIg=9S!;}=y=fCp!48Q>D0lqgRFy32fq%TI&|sKtwV5!kPZVnM06O`K|S!> zfd>X2A9!Kl?*nftXoXDSqwrG%D1sCn6`d7*75xDsJW!!jM1W6XjAEEVP^<;t`(uhz ziVKQs;Fo_-Nh_U|os?aay_9{G{gt80cx9q8S(&O-D>ceIrCw=N7AZ@VBbB3+Rm#cA zr{HFDs&blgx^kv+mU52r1?58Jo65z?rtksbap4K!iQ&l+7b9*)+>W>taW85`)Cb_% z_*v8!QG24kirO2sFKU0($*9v&XQR$VU5L6Abvf!v)YYg5(J9f^=y}l_q7O#@7ULEZ z6w^N@G-hCoGA1G>Dkdf-E+!!+F(yAoA7hLuiWwX;ET$x8R7_b+MT|9OYRs!Kt71Nl zIS`9tJ!0jtVX+CZ>R3%|W^7h$PHbVUDRyw|(AW{NBV(V5ZI0a#do=cJ?A6#mV*iZ2 z8GAeSPVBunmpHdLk2tS5?>OH$|G2=ousD635Vs_5ecXTn)r3`@5Fx^zcqe){I2-V<9Ej&jz1Rvef){|pW;u& zUx~k);GE!^;GW=_AWQH`@Jk3z=#kJnp>IO}gs=ofLU@8Mp&~&@Sd_3iVQa$I2}cvY zPdJfqGT}_ZxrD0;*As3e+)B8U@OQ$4L4kvk2iXVB8?Yo&uWJoGb8kaOJX-3klr00|7CoM=?p0p}yP14&*o07I9 zZA;pjbSde2(!J!~$pey2$z{otl4m9_2Cvj*$t#oBB)^^fZt@4o8`D1C<$TI7DVI{N zr`%R~se)9UR9#ha@NiYAB2>|;I8}lwQ>9bos|>1Q)ezNiRf%ep%A%@JHK-=2Caa!S zO;gQK%~H)#eW==?+NIi~`dYP5bx3to^}Xr`)dkh>sy|dWRJT6&2-I7%`D9v%`2K$HLq#j&@9p{*SxRUsQFa0MYB!wh2~4m*P4Br{hG6y z%bLG5_cRYOs0=29%jl7z%+O?LGjcNWGV~dR8O0exGe%^XGs-e1fG6-%8A8T08P8_S z$e5M!e8x)|uVlQMu_|Ln#&;R#GycwW&g`10$}G$rnOT!rpJ~q=n>itKQs&akcQZf8 z+>p63b93g_%w3uLGmm8+&-^j-ROT<4mohJB{+@Xa{EDNrI&G15uy&YsgtkgMQ9DJ; zYoF0h*FLA6qkU2PmbOW|OuJIMM*FsQz4krr2ioo0z1m;2ce4VsqOw$3rmV88nymUP zd)C;j30YIKp3Rz(^<37RtQWG@W*x}7k?oh=C0m{ylHD^qEITGUK07fxB|9xUJv$>? zn_ZMWG<$gV$ZSh?MYc7&Dtlt~i`jFtU(H^Sy)gUD>~FKb%RZTXCi`6Wh3re&x3ceK z|DA(!0&{xg^vdaz(?2IRCm|;>Cnd+2W6mkfDbK0Q8Iv<3XHHIY&bv7qb2jH}%h{3h zea`uuUvsYHT+6wc^HbXRrPbvJbna;aQ4*E!cM*CV%IZhme9+C?SeZ6_X_Uok={e^qxaJX z>O1SZ>gD?G;Fqq^YxOz$JiT6T)DPE}=_~Z3^)>oB@K=9I&+DJjzoeh5pQnFKzf8YU zzgoXezg_>0{#*S){bBu&`cwL|`g8if4X)tX9$@HT=xpd_=ws+_2s0=Q5r!y3k|EPz zFjN`F8wA5N!wkbL!}Esuh6RQ<3~w418=4H;3?~c^j6ud=V|QZ@qtX~@j4{R=2N{!$ zdSi)kl(EcMVH|C&HZ~e38mAa}<5cjQpKn}Xe8afNxYW49xXQTJ__lF_ahLHc<6h%F z<9_2Y<8k8&<4NOb;}zrY#;e9Zj1LN_LZ;BE(6!LL(7&)_VV6RAVfVs;h0%qvh4F=h z3eyTTg_(ufg}Oph;mE?8!iK`Jh2sk+77B&a3a1x7S2(-y&BAvIcNP9vc)Rd!;r$|9 z#1wTY>Qxk46bGLBl|`eAYKrQM>_sz+W*5Cs^m5U>qWMLOi&lV7|GJ{}Meh}DE!tkR zv*`1pgGGmnjuw4ibiU|f(XT~UOq9vX_wAj>aT5eip+G5&n+GYB}w8!+7>5%D!>7?n5>740;>5}P| z>5l2|VpQx=>{aYt>{lFI+^e{6@ql7wab$5!aa^&kcu4W^;*rIr#pT77#f`<|iYFFN yE`GLnees9IKNbHn*kiEI;Ml>c;R}YpF?`+d_lAGmaww#v|JElf#OjX(xYr-Kt^OjW@JHDWJCQ>e>4CML?viA8iB^5X{ZWKM^03Y z>d*{yEowy9As?EJZbZw_O=vl~8LdFKpj**Ov>L5JccHt{J?J5{9<`w-(H8U+dKx{0 zwxbu&F7zgP3++R1qy6X|bO3#bK0+U(PtZwp27Qgrqf6*V^b`6S{eu3)1jphytiZi+ zZ=8aaI1OvC8C$Rw+prz?!2|F>JO~fPrFa+~iOcXLJQ+{HQ}HxhjotWKJPZ4A05@SC z-+&k6C3q=bj#uH^@jdund>`J3H{nO{X8b6A0&m67;hlIF-i=?!d+{6iV|*N+z@Olg z_!K^kKgDP8XZUk`7Jq@y;q&++{t5regfUT!go$OOjDm@0G8r9{#ps!A#=saE6Jury zm_nwADP~HT!ORe5C^MQF!;EFBnHr{+aWQqw3}zB%Y)a6;YEkl0ouFKIu!YA^k{yGJp&ugUARnnv5ZpWCoc@+@yhAM|@-f zSxA1t8(BlvlDo-d7B&{r^%<}TXKPX zN4_T)$xq}@7O@d*Bpby_*`90?o6M%LYBr12v)QbHwXt^A!RE2~Y=3qDJCq&4PGhfS zXR-Bc1M6XZ>|B;-Z(wg?SF)?wHSAsNeeC`0I<}2{nBBrY#XikG!#>OIW?yDsVfV1F zvU}P6>^tlc_5=1)_6++C`#t+J`v(`nMRHM`f{W)8I3=g!Oq_$u| z#&Hw4XkBq$oiB6($5xoMVbu747I zx69LbZB4z??{7shs0U>zX+=^bqb%J(3#z1w(&CazuWy#W(OKgv_SQ5txIBR>sn%{S zu@~CxcB8}5C&%b0D#$Yy<~nkWIR%y+YmPmqPrkzuS~vlvBHbp`6ZJy9Q6fr0$tVRW zDM!O-IE|o@G>S@S^d_W2YLtdFNQ=@@2Fj!{vESD5-S^yuR`Py!8+E`YOhb@J|VLbCuW3bTznO0`ceA zCQq@;A8>n|0Z=Vf(%8_}D&3x1?;Jl&DLxhWd``~{80rZWyQ-UJlzQsC(7oJM530yj z+tIz(SXT}75djEICafPB!h#+3LAv$GfpSnTjipj5TaWTkKI%*5)I!GyyX!Nd##`$$ z0m_HF1Ex|>z~!q0v==tH>uX&;Q}@YD<*?Pc)n2C$5YRp{INm@0#zSEgMr0{prNP~ z4HKBG+Ua*qhHsy%9&kL{MG=jsiYn>KI(NORui0#_@Pl4A*E<`kYn@g8nweg2eO0~J z>2dk0ta)aj&MZ*w=3(Wd%E|*xwSZgyl|RyLmJ$!(%xlJ=y%Xm6U>h9;s)G#O2yNi>lvX_`RR-XU%o>1wEU`AUV&xa-`o{VJ(UYy&0) zs?Bx-nX9Cl(!x&KmIr)IHGw9dYrNYvr^xFG_`LP?La&6=WQI}n(eA@M|UxxSt}B+w0NAiV^1RX zMtl8k0oakwMwmcoEU1SWK{2>Gm#LCUi(RwbAc{`kc(>mTd(;d(y`VCz;@SOGQr-MM zeN5IoN1yzhyj**p)n?DL8&r;5Q=Y}12aLdsfn2hy!uN7b5v?*7ycLI%hW9B zEkV3Ous)173(~OxZA6>UBh*22XfEy3h8{(ap~um`XdWF*htSailj*uCBvApG{6UQ~ z0$f6qA3VdrY+(K>so^SJNBe*<-X{Mzr*DRW3+ovr94w1Zwl3u#Gc zg5Bs)wH2dqc0p(SW99SB@Lh!#wR={l9g6yX;LdyxACh8#amSZ1Vi zhQ}=^$SSG26Kma|=$u0{sCIggt3n6;K1Pec7#Gum(V9UE zcXgTII65({L+XPnWj#7BD3vOy{7TG;$T%gi|7kjurW{6}q0iA-up3{XbEp-4HPIh5 zt00XN1MUW}&(4O%$+hiH2WVnCjFwUx9i=JQ_1t+=^n~j|fPaI&L%LS#RnnAhTyZ(utVh42KZNc6eK$~! zK(5ONw?mH+#-hxJUa&Y4qz7|242RAwM5yZbQG>2b~gFX{^Dl7rAy z{+FQZZoRLBP9219VwIHtFXAo)RxpsjTAU@YXFATnnOH|B(ZCP-MojE<9YdNuB;w%bT-jJ7csD`+-Q=yS^Si*PtN*r_;FVNKldtF_7^K18dciXc zsvYbAwS#l$bebam&O@#?fHwFapcVh8NRejew?PGmLc&;pi;=t)7vdsXOI@wF1P`Wl zbOtS`sDt_a(?a@bgv&D{FjJg-IC8C{DYA$MLz9fc;{=qA#$)hUTu$BeS~`o?x8aH) z$|lf;Aj+=$XQ8Z0K-qNa384&}$~Ih!UBZWYX=Ct{BF&Vtp>5VN>!c zpB7w(B^ld4G-NiOFJNX4ZpL%*JlaHO(>b)c4KD~{W)Ynm#LR+!7G`b~Ftd!#3t{GF z0W&Lrnczd`12YMq6saP#$<_D{5ie^2FAD{{+y!{K{z|-%p`ju7;}!ug58wy!LwFsf zl&3e)#cjAXh?j@yk|17|{j>1$n1GkZ>CzBho)qx11@HnNdL!UO_@qcBp-pbXFNk>A z4tTjqz{^X3m*rRBMS3hW;$^%C$y@L%bVUn(mEHnQ5=6^o5VS#@1hRfLV;&m%CO(AZ zoA6tBAATF}$M4{G@d130uB5loRrGecny#U1=^dN!VeojC;G_6`d<=hpRP;{pea!SO zdN;j?-V4tK69YkCv%GltB)7k$-aSKz2OuC5UyFf4slU<cLJlYRBI4@; zA(9( zN%L!G2Wo@Si&1RoYtOUf)mfa*+FHBAW`$@a$7;9KR6Cv3)wX;~Zk^3pmsjn`w^TTN z4Y`i-?$N?@6UDDwgH_aVU!t8YkT4=04lVu$Ul2TEc-MlzqYqHE*zt#sj^gj1(av?W zM11}Yxi;Yl9EJ)Q#9)TO9K<&hz~70Z>u4)&1K-C=Q@Z#POk~g=w)``#HPa&q-TEpS z-q37p7L1TF=x-SP!GOjHVXBzZ`M=J9T+Im@SP!YKCUA=S2Yp;qrx6{|-e4Nyf_#jS zV=EVYx{i!gM*DUIm!$vyX(s1t`^acVaqX=B4bB>`zu9UrSsm?fMbYWsoR?db>o7VS z8|z)hF1@<4R$P#H5C8LscQqgJ|3~6oZ6E({#0xs4Oah}sx{XXvrWezjNo10kWG01f zq?_m?bTfUFK1Ltk$fPo$)tNM=m!RG0zvvUx%!3Kv6jbi&X+oMinED;;17lJp9ndxJ zJ&f6E*XPfoozvgx-=!tpKrC>a}6q^&0<+-P|dgI*&v0LpKDpTu-$wz7A8+X zvX!whcE-WvFu6=0`Xt>#pQ2CGXXvwZ>qcxqD&`udAJZSc2ZE`Oq0iBG=u!CoL~v9R z3jBUZ={Q4qa{mbDTyGQj_)-9^e5Q9!nRB)qLP#&9H-%RnKMNr1FTN`E_#44idVS(6 zgRrMid7>LGAc5?j;SqXufkNmZiygsFtIeMbW%=-X4bp?S-hNs#em#xWJlc&3t>z)Yks z&==`TbO+r@cWq!M1BXt9PZcwr?gpRZb@;qN-xSsr>M$kEjZROkt2UTf8s~EXo2ucp zSa}E~7Y4h9^d+!YiAUfbs0|1>>Hw8n93Uy+ds%{zygCy=HY56Va%rY^} z0@$2C-(pY&Io;OBYEb3n=5#Xp3g*_130Bg#Iw!cDS%qCE99-t`94IZne8%KA@Tt{bM3t&DmbK6<2x_rtpP41dmLtXWdSa-Bf z7;=C978EgG834yO_kT02AOImibrY2SLUh^2Y!~Pvq-dEJ==<#sDYFCZT+i%eb}_r@ zG5R6>xWj{G_Aq-dPk=IZ&}DCdl8d1q&;re%>$+tJn0FWmD!M0enLaS$J-QV}d?bum zYX}Yr0rdfM{E87LV8ls!97dcFBt_7D9V$vtOi*qa)NPW_7;v>WGoLeOnJ<`g%$Lkp z%-76$<{Rc)dXk=^r|GBk4E>CLPS4UW=()|HQ@&>|A{90;KQcctKQq5Dzk+W0lE=Ma zO(%~>@^~DN>v%ka$6kT|q=GsQRy-kRChFP*fJ)SrLI_d?3c^zxEItNxQ?T+HYyh9p z-4xWU!W`lV5V`T2+j^oKdC-wSh{E#5<#MX7f2-is)b1C*TNpt#ns!5&|fXkPB#)uWWoeedcK9o z={Hn8PADaYS`$bjP?hu~y-08RExka$TTha(fuzvy1^o6D$ePt{y`Wt$2ZQIC5q#_@ zkbzl(kgt2+b`5*^`ynoGgDc>h8w{q12BL4Gr5A;ODX5r8CNYD}COVQu^dy@Yh>@7+ z5A+iKk^V$~roYf%Hxdi65*x7-2b87@=x_9Q9*6Tdp2rDLrH-TODT1&I{>QkvjjqWe zSV4fRq`iW%>ukZ!bSDbfNzvj!i(svU03GU}Ascm-wxm#7r;6(+lTHq`K?$Hrs;}`j zn1X)%6%}%Omzua~LTOrym%ad@O;~Ue~&5s9^%B`n&ojnNFOfn$(b5w1meDj|q=i9&omYmb@IXz(}s`fIb9@ zhj=fmDjp$z5Rh)X2oaAZg6u_u<0*)0m#V)?C!7e#3YK}uE#y|nAcOMh z;FI&028@eb!3>7K?zR=Kngm*la zwF7-+S?W-*SoS#@Mjk>#DIgUhR&fulWc}4^Os%9%0R3v^CvoHkvQdmdx>2MP72O59 zm248G6JnPCs6TjpLeQt`6q~;x1{_i%LI#mM&f{J*1(aQ`+pCy!GL$&?10e`;TFC+^ukR8IX7m1X|DfE0R*-3Ws zSjpo7R6Vhy_8;oKhX@`)cfI}w(CIB6rwVlH7g8DfAtd zACu$c1j-fEuA0YbJT~(98XjAy49b3Br{Wr$s_We~qR-f#NeaPthMWV{Mm{5-le6Rt z9&324<#9TXGup_PLaLaY=W(WxE9S9YFhc*BiVXQdAoV34DoA2UhWsqZ`7aV=iTvaFnqV-+k|Ju{DOJht<=Pp5i0!S)se)52qGP^cAGOJqpNRb^YW#B3Uy z4qV4-SfGxB$2qNJ9-9eTk;l0Li4z)}o+f9#s0cgt803RJ!H~G!j#dfBll~^h%^F!S z_$@4KFt3FLc=O@3jJv~-R!P%36tEBlh@M)9R}U3ZfT3N<;N+l^sSGNaY27z0;;k=m zJPUlg@`T226ixyAxpsHvF$>{mI6z#!+1QX!-Zi-vK9Yc zh}cSY0`nmAAP5m)6ojaN$HVA;_%DNOawtw?tJqo)7Ir%8WUJX49vAYsh{we|E@@+3 zg0QeNc|2GYmZASBVPU-jW>Jc@OT7|%XmDhLqGuaKY}&eAB-cSrTD6XAew6SZqdk% z7U&L^`7ezeRtNcSV!M$8+rYL6IB4aee){ih1G|BJ6sl+JMs^eX2)mib6+9l#V_@b9 zZR}(0)68iZRQ?n&dFKDXdD2M_NFVUmBW zbB>rC0Ttc7wcYnGukkj5?5nyp3UXNvhdd$MRpWCvLS77FhlFljg0l<0yGX~^kPAxF zA;8~Y-xBo2n>?Q00$LOh0VDxq?f2HV=Y@prhkC!u9u!<%A)aOr@wmD@pl08L^G)ng z_I)0MP`Nq`Ap0SE0^}ZbJ>kS|L@M?a5QKsgS1W|aOLSc$TlO;+4BBO5;ApTgW_uY^3&-g|s{0&U55$5&;1Wo}it8G7Z z^;eGIWUtR13c)FaPO#!q9$(i*op4#4KBP|O@YvT)op5GQC!B?|a$s!zJPz=<=`YmD z-zXEVzo<-R|F4uuHh?ZlAvW#oHOMTcPx#GFo$ODxvHm1UV`zoEe5<4E(X?+u)BSr;lnpl!f}*?cGzz zpf$SgyuE%T)fPJj=N4J5g;15U78xA{`Br1Ty`%vCz}1YB!r~lT2^Vr|?A1H*YDej-q{_1L&JIUIX% zc|=yKs3yzWkb=vEI4`R#8hr8ywYDI1D@|}>z4k{=tDlQp3WN7KI;Uh+tjT${> zZ27qI@s$%MPMSPr>eSFeLGXc4Gajy0 zl$I6)xl8>*dIXY6W#xn2K0l;({f%BoCi&pzNbnH1m^hSn%qrs656$I)x%IA*PX8>3 zk3(yAsF>1XaoHih#^5>tL1}Gs2X@MugnJki!{L>%h)4=&O2R2iqolEvqYAkEL=K?{ zBtwaC7s-fhaBpW6-11liHv`wAN6@>Fg!u+;_5Fzx;2vKhPKG;tI=H>p5ANwrhg*7$ zaFT5?+{{}Bck@=@Tk%@BjkgEC2Dk9u#24@%3}NJOyDpi@VhG= z_u`&sUSr;X`*7!og!G2HZaHwXZ73N1;aZ)BO=tVD6WKa;A$uEm={wkC za2f7%_B{J7`yG1`9Jt@vKRL`1u0J=2+sHk`J;y!Iy~yq0c5!cWN4S&RY3>a7d02B8 zA9hRF9bxx{tqXf3Y-`xgu-##=guNQ}df2;R2g44By%+X=*au;k!lS}1;ichY!z;oo z!zYH@+ zBaPNK2$G(h*q@Srl0kIVAG+$itBzN1lj08F@PLOyv2Wio^qkf9|Q-UQ#!bzefJtR_zT%wSq zNz9T$Nu9(iX_hRM+$_0WvPN=;DJCT*HAWqyi7~{OVk|MX7)MNQOi@fp%#fJUm;*7#V?K#F74vBi zZ;u5%uJ1v6+z=ZRn;4rMtBh5}w#9CV-5&d5?2g!7u`kEI75jGVJFy3155*pd{Z86T z+D|%JS}UC)bxUVS1JZ@kMN(e6Sh`fYOuAgUTKbT*O}at4N&2|-3F#K;)6(aqd!+}Y z2c?IlN2Q-izm|R@y&(Nw`h)Zj8ImzFRu(3UkfqCp%e=Ccvb$vW%I=pvDBCD|QudVW z8QE6ZHraOBi?SWEw`A|i4$2P8j>$fheJnd6J1@H+`$HZskCaQ~G4fb>FL|OoS+10; zwon5&qtSg2T} z;1!D%OBKr$%N6%3?pHjhSf^-Jv?(?yHYqkM9#d>p>{fiBxDX!}pA>J89}zz>{*L(j z;#=b%i+?tLTm1I;7vtZE-xt3>{y_Yp_#^Sh<4?w)jz1HBKK`5d3-P}sND^WaViRNu zaS8DWJrjB-BqgLI=o1VHrUXmE3kiD@-b~n+u)kMxucf_~^;+I*MPg23Vd9v?^2Cb7 z%EXC@lM|;VRwa588xwtrfy6n9a}(z$E=*jMxH9pb#GjHhNhL|nqyNTl@Q-`JwOC6C~mO46h zZ0aqkPo;jWQm96%CaI>Xs#MjgT2-COtD3E9R?Sl_P+hNDp<1n4tGZKlx9TBPi)y{< zVbw;}ld6|gdsMHf_Nv}g9Z(%o9Z?-s9aEiBeWSXh`bqVR>Nhn}bLwz)q*|g@sx#FN zb*Xx|dZc=kdW^bUU7@a2PgGAAm{ynOPMekHNo!2=rQMshF>Q0&V`)#MZAp7NZCl!_Y5UUlr@fnY zFzr~{hiMy(YoF5Y)V{3UqkUcbhW0J(``RL;mwqh$qx2K$r_w*oNXSUd&}C$2 zm@=#xj*Q%lqKvYPaT%2v6Emh{G-X_$@jymv#_o*$83!^BWxSVhHsgnkA2WW=_$@Os zGdi(pqrzctGiyu>z3$l)UDDzplj1@&~4If)@{)}quZ)`UiX4- zkM4Edo4S3vW4g1tbGol|=XKxezSCXQUCQFJBC;e|J+fq3imZgJURjA*maP6+gR@Gr zMr4i38k;paYg*Rytm-UR){LwrS(~%=XMLS@DeLE~-?IMDhwG*KIDNdnmp)OStXJx@ z^%lKNpQG=q@24NAFVK(Hm+NQhXX!oq>-2tolm2@BGX2f^TlK5-YxH;MTlEj?H|ZbM zzpUS*KcGLPKcatMe@1^!|F!;G{SW$|^uOwV&rZnB&K{UOB70Q!*zAhz3E7jfUD-Eh z-<5q&_WjupWmz|1cm!q#@c6Ymga~ z2BX1juo~=!977*NzTq0fFvCd0XhXT7!cb|LXqar6YPiKX}M{Q=|R(0(<`QZ zrguySO-D@cn@*Zeo6eZdn$DTNGDn#+&BM$!=6Z93*=t^4USz((ywtqRyxjbNd9(R( z^AqN$%+H#iGw(9LYTj#p%lx+a1M^AqY4aKL=jQX~3+C_5m&`v|u%(A3-qO?3+md8S zv!q)xEqaT=l5gp2xyI7pGR!j4GRiX6QemmIOt-i!GcB_$4VHNp-m=)T)UwR7(sH|H zjpa_u-Ii9%qn2%!otE8}S1hku_F3Ms9Iza=yk|LUxnO0iJ*`&j2(-B~C# z0o!5QQQI-wceabRA8o(bezW~)SJ->n6YVMXRJ+=)w?hPO&$sup540E9%j{$9*+rhS&Z*}l+D?ThU<*;m+C+E>}z>|5;5*q^g+x4&fHY2RnxZ$Dr^WdFz!=8!mY x90MG+4!7er$K8%~`Lpsp`E&A@=HHUPCja65&G}EZyXK7e&E4DGHP3(Qe*p69=RE)b diff --git a/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard b/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard index cb161ba..72b6107 100644 --- a/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard +++ b/JSON Encoding App/JSON Encoding App/Base.lproj/Main.storyboard @@ -72,7 +72,7 @@ - + @@ -83,7 +83,6 @@ - diff --git a/JSON Encoding App/JSON Encoding App/Student.swift b/JSON Encoding App/JSON Encoding App/Student.swift index 1cd1037..34ffc7d 100644 --- a/JSON Encoding App/JSON Encoding App/Student.swift +++ b/JSON Encoding App/JSON Encoding App/Student.swift @@ -2,7 +2,10 @@ import Foundation struct Student: CustomStringConvertible, Codable { var description: String { - let result = "" + var result = "\(name), Cohort: \(cohort ?? "[unknown cohort]")" + if let age = age { + result += ", \(age) years old" + } return result } let name: String diff --git a/JSON Encoding App/JSON Encoding App/StudentManager.swift b/JSON Encoding App/JSON Encoding App/StudentManager.swift index e0a86d7..effc1c6 100644 --- a/JSON Encoding App/JSON Encoding App/StudentManager.swift +++ b/JSON Encoding App/JSON Encoding App/StudentManager.swift @@ -35,9 +35,11 @@ class StudentManager: NSObject { } catch { print("Error: \(error)") } - - func create(name: String, age: Int?, cohort: String?) { - } + 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/JSON Encoding App/JSON Encoding App/ViewController.swift b/JSON Encoding App/JSON Encoding App/ViewController.swift index 0d20588..98721d0 100644 --- a/JSON Encoding App/JSON Encoding App/ViewController.swift +++ b/JSON Encoding App/JSON Encoding App/ViewController.swift @@ -18,8 +18,7 @@ class ViewController: UIViewController { @IBOutlet weak var cohortText: UITextField! - - let studentManager = StudentManager() + let studentManager = StudentManager() @IBAction func saveButton(_ sender: Any) { guard let name = nameText.text else { return} @@ -30,12 +29,13 @@ class ViewController: UIViewController { } @IBAction func printButton(_ sender: Any) { + print(studentManager.students) } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - studentManager.readFromFile() + studentManager.fromReadFile() } From bb5b5e535c1bf822cc730279d4122ce045f734a1 Mon Sep 17 00:00:00 2001 From: Sean Doyle Date: Thu, 11 Oct 2018 19:06:33 -0400 Subject: [PATCH 6/6] constraints added, projected completed --- .../UserInterfaceState.xcuserstate | Bin 27565 -> 27448 bytes .../Base.lproj/Main.storyboard | 120 ++++++++++++------ .../JSON Encoding App/StudentManager.swift | 6 +- 3 files changed, 79 insertions(+), 47 deletions(-) diff --git a/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate b/JSON Encoding App/JSON Encoding App.xcodeproj/project.xcworkspace/xcuserdata/lambda_school_loaner_18.xcuserdatad/UserInterfaceState.xcuserstate index 1510415f06b8ec77d6eed8280274be101fc8a24d..6937d180c11663122871ad6c4ab4bf48662aaf3f 100644 GIT binary patch delta 10342 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 r$>$|Mmi$sGDwULKN{!v-ber34Ww%eeefey|2 - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -87,6 +122,7 @@ + diff --git a/JSON Encoding App/JSON Encoding App/StudentManager.swift b/JSON Encoding App/JSON Encoding App/StudentManager.swift index effc1c6..1856018 100644 --- a/JSON Encoding App/JSON Encoding App/StudentManager.swift +++ b/JSON Encoding App/JSON Encoding App/StudentManager.swift @@ -16,11 +16,7 @@ class StudentManager: NSObject { //data.write(to: url) do { let studentsEncoded = try JSONEncoder().encode(students) - if let string = String(data: studentsEncoded, encoding: .utf8) { - print(string) - } - - // try studentsEncoded.write(to: url) + try studentsEncoded.write(to: url) } catch { print("Error: \(error)") }