From 20265971455faca8a500d925c1c2186a010f98fd Mon Sep 17 00:00:00 2001 From: doshkor Date: Tue, 20 Dec 2022 10:21:04 +0900 Subject: [PATCH 1/4] first commit --- .DS_Store | Bin 0 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..53f8ca2036d746475f7c2794e025a56fbd660dfb GIT binary patch literal 6148 zcmeHKK~BR!474GKNL+g4xGzBJ50)ytpdUb`QbB5!3YGhc3;*E6LwE?E;EEXA3rZA~ zBL^5u-pSgYY%+&977<-MtmhozIu@?^`@EN?!slNxD&YWLV~=F6LYx1UrV4;Z(R z3)#q>9LD_eG0g4yu3K&U6=LoCxiL2 zM?BTKT(JZOUDQv;ed@_tClvM55l>z&ngh8~0V*(7;54=~>;G5qBlG{5#2po&0)I*Y zZMtQ*z$?|>I(a$kwF!O=|1#8iITmllKySs^SSvms)Frz{K36P(PDkA7K>i4rE;K6e H8wz{^YnCgq literal 0 HcmV?d00001 From 6559a1ccf795b5e09d6500f155c95d96b427571c Mon Sep 17 00:00:00 2001 From: doshkor Date: Tue, 20 Dec 2022 10:33:34 +0900 Subject: [PATCH 2/4] main --- .DS_Store | Bin 6148 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.DS_Store b/.DS_Store index 53f8ca2036d746475f7c2794e025a56fbd660dfb..d2b740c3b6da650366c54b99116547a2fa44d365 100644 GIT binary patch literal 6148 zcmeHKu};H441HHJ1hI5vjQ9Yg&McvXk*Oa5v_UPGA6>5JcPtNGo-<8Cva{}?YPOTP{G!c=VG05{k} zg%jj*KIg}{ppNOOa7b@~OHBBD=NwhUYm7L`88106aMpZg*>*MiF5h?O`RVmu@4J#` zo)w>5t$ObU&z=r5#(*(k473Qa*}{)z*>vybUMbYp*5#zuCe$OUh^(s>7bzV0Qp~kd diZ`iV=uc!oOas=6^ib@NfTzKXG4QJld;t5nce(%o delta 63 zcmZoMXfc=|#>CJ*F;Q%yo+2a5!~knXmdQL!)tkRE3$bisdB?Pwor9kPsABU+=I_jt T`9%yF87ABCNN Date: Tue, 20 Dec 2022 10:41:04 +0900 Subject: [PATCH 3/4] .DS Store --- .DS_Store | Bin 6148 -> 8196 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.DS_Store b/.DS_Store index d2b740c3b6da650366c54b99116547a2fa44d365..779cd6c3e1734a5f76ee5acbf3b67252f2ca53a1 100644 GIT binary patch literal 8196 zcmeHMJ#O1D7=3JAz(9v&^eA*sgWNz#lr8OIBx`G1g5yRmRa*v{P3Q%BfNVvF9;658 z5qgQNLEcBQi4-SA3 zyLGT|Apo&Mu}iFPN`)8&j0094sbMnSmFQhf2r-Ozr#uRFalp!>cZUhVhY2H_5TO`1 zI{S~DIZW(POJzVASY|+C_YPiTj0wtS{9awwbyJ%p!`u!j>t1}BmEV5++->U9zv_#V z+P4Aoo340)H?T;NAur0|;bLCSDBVRLXPBd;e2Q%x(E%eaUt~$p9nPCoD7C-k#grFt^%_Y18BU z&#>?MONBqS2l&W5cJq42YirCZosaUNwK;uPcV0V+R=#{*!5<=5_9bJlR;8Pp;WHQ1 zZ!uY9ix15$E(_64zxCts>+AXCyFVVS%z0{Wj#k@!H;$#Fqa8lhZnw6w615%NN`Ibk zEtP?%VBonQv?uZZ!TsO=pJHk{rZS)mJQ4$@lk}544i;kTrC}x3j+oywOA@=vqjO>5 v!f~Pt$BEZ}7_uJGRD9xql}AdL9{)o?#@F%(ysY2#_NdQ)w`N-W`wUzGYV}IG delta 143 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{MGjUE#6q~50$jGrVU^gQp$7CLX>d9Y3Tqpk) zN@2CWckbch$p?hJC$AUgf%D=v=18zCX6N7#WCj`l1OnVZ!WCrJ#>DT;llf&FL6$Kv TGBB`!XeNklV6n~dJad= Date: Tue, 20 Dec 2022 10:43:59 +0900 Subject: [PATCH 4/4] comp --- .DS_Store | Bin 8196 -> 8196 bytes Model/CoreDataManager.swift | 74 ++++ Model/GradeCard+CoreDataClass.swift | 15 + Model/GradeCard+CoreDataProperties.swift | 27 ++ Model/LocalItem.swift | 10 + .../project.pbxproj | 326 +++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 43344 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 24 ++ .../xcschemes/xcschememanagement.plist | 14 + .../Model.xcdatamodel/contents | 8 + MyCreditManager_dosh.kor/main.swift | 381 ++++++++++++++++++ 13 files changed, 894 insertions(+) create mode 100644 Model/CoreDataManager.swift create mode 100644 Model/GradeCard+CoreDataClass.swift create mode 100644 Model/GradeCard+CoreDataProperties.swift create mode 100644 Model/LocalItem.swift create mode 100644 MyCreditManager_dosh.kor.xcodeproj/project.pbxproj create mode 100644 MyCreditManager_dosh.kor.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 MyCreditManager_dosh.kor.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 MyCreditManager_dosh.kor.xcodeproj/project.xcworkspace/xcuserdata/dosh.kor.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 MyCreditManager_dosh.kor.xcodeproj/xcuserdata/dosh.kor.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 MyCreditManager_dosh.kor.xcodeproj/xcuserdata/dosh.kor.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 MyCreditManager_dosh.kor/Model.xcdatamodeld/Model.xcdatamodel/contents create mode 100644 MyCreditManager_dosh.kor/main.swift diff --git a/.DS_Store b/.DS_Store index 779cd6c3e1734a5f76ee5acbf3b67252f2ca53a1..aeab5ffda293d4f3e369a36c4fbd9f385df9743e 100644 GIT binary patch delta 130 zcmZp1XmOa}&&aniU^hP_-)0_xzf4RIL?(X}@es<*cX3I|$xmWnVBlbK-n?bkg2@Mk zy(X_0=3#?#!;KjYfbtBS3_%R842}#g48A~Gk0F;K#WN>A8LC|XsA4@3>-`6V&E7nF Pm^ZUad}rC1$;J!-V+ttL delta 115 zcmZp1XmOa}&&a [GradeCard] { + var gradeCardArray:[GradeCard] = [] + let request = NSFetchRequest(entityName: modelName) + + do { + if let fetchedGradeCard = try context.fetch(request) as? [GradeCard] { + gradeCardArray = fetchedGradeCard + } + } catch { + print("read() 실패", error.localizedDescription) + } + + return gradeCardArray + } + + func createGradeCard(name: String, subject: String?, grade: String?) { + if let entity = NSEntityDescription.entity(forEntityName: modelName, in: context){ + if let gradeCard = NSManagedObject(entity: entity, insertInto: context) as? GradeCard { + gradeCard.name = name + gradeCard.subject = subject ?? "empty" + gradeCard.grade = grade ?? "empty" + self.saveToContext() + } + } + } + + func deleteGradeCard(data: GradeCard) { + context.delete(data) + self.saveToContext() + } +} diff --git a/Model/GradeCard+CoreDataClass.swift b/Model/GradeCard+CoreDataClass.swift new file mode 100644 index 0000000..76e83ad --- /dev/null +++ b/Model/GradeCard+CoreDataClass.swift @@ -0,0 +1,15 @@ +// +// GradeCard+CoreDataClass.swift +// MyCreditManager_dosh.kor +// +// Created by 신동오 on 2022/12/06. +// +// + +import Foundation +import CoreData + +@objc(GradeCard) +public class GradeCard: NSManagedObject { + +} diff --git a/Model/GradeCard+CoreDataProperties.swift b/Model/GradeCard+CoreDataProperties.swift new file mode 100644 index 0000000..7e92a52 --- /dev/null +++ b/Model/GradeCard+CoreDataProperties.swift @@ -0,0 +1,27 @@ +// +// GradeCard+CoreDataProperties.swift +// MyCreditManager_dosh.kor +// +// Created by 신동오 on 2022/12/06. +// +// + +import Foundation +import CoreData + + +extension GradeCard { + + @nonobjc public class func fetchRequest() -> NSFetchRequest { + return NSFetchRequest(entityName: "GradeCard") + } + + @NSManaged public var grade: String? + @NSManaged public var name: String? + @NSManaged public var subject: String? + +} + +extension GradeCard : Identifiable { + +} diff --git a/Model/LocalItem.swift b/Model/LocalItem.swift new file mode 100644 index 0000000..07027ca --- /dev/null +++ b/Model/LocalItem.swift @@ -0,0 +1,10 @@ +// +// LocalItem.swift +// MyCreditManager_dosh.kor +// +// Created by 신동오 on 2022/12/08. +// + +import Foundation + +let permittedString: [String] = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", " "] diff --git a/MyCreditManager_dosh.kor.xcodeproj/project.pbxproj b/MyCreditManager_dosh.kor.xcodeproj/project.pbxproj new file mode 100644 index 0000000..64cef95 --- /dev/null +++ b/MyCreditManager_dosh.kor.xcodeproj/project.pbxproj @@ -0,0 +1,326 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + E7C6572F293F62960072B439 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7C6572E293F62960072B439 /* main.swift */; }; + E7C6574A293F674E0072B439 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = E7C65748293F674E0072B439 /* Model.xcdatamodeld */; }; + E7C65751293F67E70072B439 /* CoreDataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7C65750293F67E70072B439 /* CoreDataManager.swift */; }; + E7C65754293F691C0072B439 /* GradeCard+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7C65752293F691C0072B439 /* GradeCard+CoreDataClass.swift */; }; + E7C65755293F691C0072B439 /* GradeCard+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7C65753293F691C0072B439 /* GradeCard+CoreDataProperties.swift */; }; + E7F3CC71294171C400DDC821 /* LocalItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7F3CC70294171C300DDC821 /* LocalItem.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + E7C65729293F62960072B439 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + E7C6572B293F62960072B439 /* MyCreditManager_dosh.kor */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = MyCreditManager_dosh.kor; sourceTree = BUILT_PRODUCTS_DIR; }; + E7C6572E293F62960072B439 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; + E7C65749293F674E0072B439 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; }; + E7C65750293F67E70072B439 /* CoreDataManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataManager.swift; sourceTree = ""; }; + E7C65752293F691C0072B439 /* GradeCard+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GradeCard+CoreDataClass.swift"; sourceTree = ""; }; + E7C65753293F691C0072B439 /* GradeCard+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GradeCard+CoreDataProperties.swift"; sourceTree = ""; }; + E7F3CC70294171C300DDC821 /* LocalItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalItem.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + E7C65728293F62960072B439 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + E7C65722293F62960072B439 = { + isa = PBXGroup; + children = ( + E7C6574F293F67A70072B439 /* Model */, + E7C6572D293F62960072B439 /* MyCreditManager_dosh.kor */, + E7C6572C293F62960072B439 /* Products */, + ); + sourceTree = ""; + }; + E7C6572C293F62960072B439 /* Products */ = { + isa = PBXGroup; + children = ( + E7C6572B293F62960072B439 /* MyCreditManager_dosh.kor */, + ); + name = Products; + sourceTree = ""; + }; + E7C6572D293F62960072B439 /* MyCreditManager_dosh.kor */ = { + isa = PBXGroup; + children = ( + E7C6572E293F62960072B439 /* main.swift */, + E7C65748293F674E0072B439 /* Model.xcdatamodeld */, + ); + path = MyCreditManager_dosh.kor; + sourceTree = ""; + }; + E7C6574F293F67A70072B439 /* Model */ = { + isa = PBXGroup; + children = ( + E7C65752293F691C0072B439 /* GradeCard+CoreDataClass.swift */, + E7C65753293F691C0072B439 /* GradeCard+CoreDataProperties.swift */, + E7C65750293F67E70072B439 /* CoreDataManager.swift */, + E7F3CC70294171C300DDC821 /* LocalItem.swift */, + ); + path = Model; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E7C6572A293F62960072B439 /* MyCreditManager_dosh.kor */ = { + isa = PBXNativeTarget; + buildConfigurationList = E7C65732293F62960072B439 /* Build configuration list for PBXNativeTarget "MyCreditManager_dosh.kor" */; + buildPhases = ( + E7C65727293F62960072B439 /* Sources */, + E7C65728293F62960072B439 /* Frameworks */, + E7C65729293F62960072B439 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MyCreditManager_dosh.kor; + productName = MyCreditManager_dosh.kor; + productReference = E7C6572B293F62960072B439 /* MyCreditManager_dosh.kor */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + E7C65723293F62960072B439 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1410; + LastUpgradeCheck = 1410; + TargetAttributes = { + E7C6572A293F62960072B439 = { + CreatedOnToolsVersion = 14.1; + }; + }; + }; + buildConfigurationList = E7C65726293F62960072B439 /* Build configuration list for PBXProject "MyCreditManager_dosh.kor" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = E7C65722293F62960072B439; + productRefGroup = E7C6572C293F62960072B439 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + E7C6572A293F62960072B439 /* MyCreditManager_dosh.kor */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + E7C65727293F62960072B439 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E7F3CC71294171C400DDC821 /* LocalItem.swift in Sources */, + E7C6572F293F62960072B439 /* main.swift in Sources */, + E7C65754293F691C0072B439 /* GradeCard+CoreDataClass.swift in Sources */, + E7C65751293F67E70072B439 /* CoreDataManager.swift in Sources */, + E7C65755293F691C0072B439 /* GradeCard+CoreDataProperties.swift in Sources */, + E7C6574A293F674E0072B439 /* Model.xcdatamodeld in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + E7C65730293F62960072B439 /* 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++20"; + 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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + 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; + 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; + MACOSX_DEPLOYMENT_TARGET = 12.6; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + E7C65731293F62960072B439 /* 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++20"; + 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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + 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; + 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; + MACOSX_DEPLOYMENT_TARGET = 12.6; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + E7C65733293F62960072B439 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + E7C65734293F62960072B439 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + E7C65726293F62960072B439 /* Build configuration list for PBXProject "MyCreditManager_dosh.kor" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E7C65730293F62960072B439 /* Debug */, + E7C65731293F62960072B439 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E7C65732293F62960072B439 /* Build configuration list for PBXNativeTarget "MyCreditManager_dosh.kor" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E7C65733293F62960072B439 /* Debug */, + E7C65734293F62960072B439 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCVersionGroup section */ + E7C65748293F674E0072B439 /* Model.xcdatamodeld */ = { + isa = XCVersionGroup; + children = ( + E7C65749293F674E0072B439 /* Model.xcdatamodel */, + ); + currentVersion = E7C65749293F674E0072B439 /* Model.xcdatamodel */; + path = Model.xcdatamodeld; + sourceTree = ""; + versionGroupType = wrapper.xcdatamodel; + }; +/* End XCVersionGroup section */ + }; + rootObject = E7C65723293F62960072B439 /* Project object */; +} diff --git a/MyCreditManager_dosh.kor.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/MyCreditManager_dosh.kor.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/MyCreditManager_dosh.kor.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/MyCreditManager_dosh.kor.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/MyCreditManager_dosh.kor.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/MyCreditManager_dosh.kor.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/MyCreditManager_dosh.kor.xcodeproj/project.xcworkspace/xcuserdata/dosh.kor.xcuserdatad/UserInterfaceState.xcuserstate b/MyCreditManager_dosh.kor.xcodeproj/project.xcworkspace/xcuserdata/dosh.kor.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..02d571595c58a104f0c8245568a6bdd40a7a9049 GIT binary patch literal 43344 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 Hi#_`vxr@CU literal 0 HcmV?d00001 diff --git a/MyCreditManager_dosh.kor.xcodeproj/xcuserdata/dosh.kor.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/MyCreditManager_dosh.kor.xcodeproj/xcuserdata/dosh.kor.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..6593849 --- /dev/null +++ b/MyCreditManager_dosh.kor.xcodeproj/xcuserdata/dosh.kor.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/MyCreditManager_dosh.kor.xcodeproj/xcuserdata/dosh.kor.xcuserdatad/xcschemes/xcschememanagement.plist b/MyCreditManager_dosh.kor.xcodeproj/xcuserdata/dosh.kor.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..17698cb --- /dev/null +++ b/MyCreditManager_dosh.kor.xcodeproj/xcuserdata/dosh.kor.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + MyCreditManager_dosh.kor.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/MyCreditManager_dosh.kor/Model.xcdatamodeld/Model.xcdatamodel/contents b/MyCreditManager_dosh.kor/Model.xcdatamodeld/Model.xcdatamodel/contents new file mode 100644 index 0000000..219e3b2 --- /dev/null +++ b/MyCreditManager_dosh.kor/Model.xcdatamodeld/Model.xcdatamodel/contents @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/MyCreditManager_dosh.kor/main.swift b/MyCreditManager_dosh.kor/main.swift new file mode 100644 index 0000000..a3297c0 --- /dev/null +++ b/MyCreditManager_dosh.kor/main.swift @@ -0,0 +1,381 @@ +// +// main.swift +// MyCreditManager_dosh.kor +// +// Created by 신동오 on 2022/12/06. +// + +import Foundation +import CoreData + +let dataManager = CoreDataManager() + +while true { + + var finishFlag = 0 + + print("원하는 기능을 입력해주세요 \n 1: 학생추가, 2: 학생삭제, 3: 성적추가(변경), 4: 성적삭제, 5: 평점보기, X: 종료") + let menuInput = readLine() + + if menuInput == "X" { + print("프로그램을 종료합니다...") + break + } + + switch menuInput { + case "1": + print("추가할 학생의 이름을 입력해주세요") + + let userInput = readLine() + + // ==================== input check(S) ==================== + // 곧바로 엔터친 경우 + if userInput == "" { + print("입력이 잘못되었습니다. 다시 확인해 주세요") + break + } + + // 스페이스가 포함된 경우 + if let userInput = userInput { + if userInput.contains(" ") { + print("입력이 잘못되었습니다. 다시 확인해 주세요") + break + } + } + + // 알파벳, 숫자, + 기호 이외 문자를 입력한 경우 + for i in userInput! { + if permittedString.contains(String(i)) == false { + print("알파벳 대문자, 소문자, 숫자, + 기호만 입력이 가능합니다.") + finishFlag = 1 + break + } + } + + if finishFlag == 1 { break } + // ==================== input check(E) ==================== + // 이미 등록된 이름인지 확인 + let gradeCardArray: [GradeCard] = dataManager.readGradeCards() + for gradeCard in gradeCardArray { + if let name = gradeCard.name { + if name == userInput! { + print("\(name)은 이미 존재하는 학생입니다. 추가하지 않습니다.") + finishFlag = 1 + break + } + } + } + + if finishFlag == 1 { break } + + // 입력받은 이름을 저장한다. + dataManager.createGradeCard(name: userInput!, subject: nil, grade: nil) + print("\(userInput!) 학생을 추가했습니다.") + + case "2": + print("삭제할 학생의 이름을 입력해주세요") + + let userInput = readLine() + + // ==================== input check(S) ==================== + // 곧바로 엔터친 경우 + if userInput == "" { + print("입력이 잘못되었습니다. 다시 확인해 주세요") + break + } + + // 스페이스가 포함된 경우 + if let userInput = userInput { + if userInput.contains(" ") { + print("입력이 잘못되었습니다. 다시 확인해 주세요") + break + } + } + // 알파벳, 숫자, + 기호 이외 문자를 입력한 경우 + for i in userInput! { + if permittedString.contains(String(i)) == false { + print("알파벳 대문자, 소문자, 숫자, + 기호만 입력이 가능합니다.") + finishFlag = 1 + break + } + } + + if finishFlag == 1 { break } + // ==================== input check(E) ==================== + + // context 에서 데이터 가져오기 + let fetchedGradeCards: [GradeCard] = dataManager.readGradeCards() + var willBeDeletedGradeCards: [GradeCard] = [] + + for fetchedGradeCard in fetchedGradeCards { + if fetchedGradeCard.name == userInput { + willBeDeletedGradeCards.append(fetchedGradeCard) + } + } + + // 입력 받은 이름이 context 에 있는/없는 경우 + if willBeDeletedGradeCards.isEmpty { + print("\(userInput!) 학생을 찾지 못했습니다.") + break + } else { + for willDeleteGradeCard in willBeDeletedGradeCards { + dataManager.deleteGradeCard(data: willDeleteGradeCard) + } + print("\(userInput!) 학생을 삭제하였습니다.") + } + + case "3": + print("성적을 추가할 학생의 이름, 과목 이름, 성적(A+, A0, F 등)을 띄어쓰기로 구분하여 차례로 작성해 주세요.\n 입력예) Mickey Swift A+ \n 만약에 학생의 성적 중 해당 과목이 존재하면 기존 점수가 갱신됩니다.") + + let userInput = readLine() + + // ==================== input check(S) ==================== + // 곧바로 엔터친 경우 + if userInput == "" { + print("입력이 잘못되었습니다. 다시 확인해 주세요") + break + } + + // 알파벳, 숫자, + 기호, " " 이외 문자를 입력한 경우 + for i in userInput! { + if permittedString.contains(String(i)) == false { + print("알파벳 대문자, 소문자, 숫자, + 기호만 입력이 가능합니다.") + finishFlag = 1 + break + } + } + + if finishFlag == 1 { break } + + // 스페이스를 두 번 입력하였는가?(3개의 단어로 쪼개지는지) + if userInput!.filter({ $0 == " "}).count != 2 { + print("입력이 잘못되었습니다. 다시 확인해 주세요") + break + } + // 스페이스 두 번이 연속으로 친건 아닌가? + let changeSpaceString = userInput!.replacingOccurrences(of: " ", with: "*") + if changeSpaceString.contains("**") { + print("입력이 잘못되었습니다. 다시 확인해 주세요") + break + } + // ==================== input check(E) ==================== + + // 입력을 name, subject, grade 로 분리하기 + let firstSpaceIndex = userInput!.firstIndex(of: " ")! + let lastSpaceIndex = userInput!.lastIndex(of: " ")! + + let behindOfFirstSpaceIndex = userInput!.index(firstSpaceIndex, offsetBy: 1) + let behindOfSecondSpaceIndex = userInput!.index(lastSpaceIndex, offsetBy: 1) + + let name = String(userInput![..