Browse Source

basic structure

schtonn 1 year ago
parent
commit
c5a33b7f0a

+ 46 - 30
sdsz74.xcodeproj/project.pbxproj → 74 桌.xcodeproj/project.pbxproj

@@ -7,6 +7,8 @@
 	objects = {
 	objects = {
 
 
 /* Begin PBXBuildFile section */
 /* Begin PBXBuildFile section */
+		AB54244D2A184B1500BFC98E /* exam.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB54244C2A184B1500BFC98E /* exam.swift */; };
+		AB54244F2A184B1F00BFC98E /* message.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB54244E2A184B1F00BFC98E /* message.swift */; };
 		AB92C77F2A16646C00FCA57D /* sdsz74App.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB92C77E2A16646C00FCA57D /* sdsz74App.swift */; };
 		AB92C77F2A16646C00FCA57D /* sdsz74App.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB92C77E2A16646C00FCA57D /* sdsz74App.swift */; };
 		AB92C7812A16646C00FCA57D /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB92C7802A16646C00FCA57D /* ContentView.swift */; };
 		AB92C7812A16646C00FCA57D /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB92C7802A16646C00FCA57D /* ContentView.swift */; };
 		AB92C7832A16646D00FCA57D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AB92C7822A16646D00FCA57D /* Assets.xcassets */; };
 		AB92C7832A16646D00FCA57D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AB92C7822A16646D00FCA57D /* Assets.xcassets */; };
@@ -34,15 +36,17 @@
 /* End PBXContainerItemProxy section */
 /* End PBXContainerItemProxy section */
 
 
 /* Begin PBXFileReference section */
 /* Begin PBXFileReference section */
-		AB92C77B2A16646C00FCA57D /* sdsz74.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = sdsz74.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		AB54244C2A184B1500BFC98E /* exam.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = exam.swift; sourceTree = "<group>"; };
+		AB54244E2A184B1F00BFC98E /* message.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = message.swift; sourceTree = "<group>"; };
+		AB92C77B2A16646C00FCA57D /* 74 桌.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "74 桌.app"; sourceTree = BUILT_PRODUCTS_DIR; };
 		AB92C77E2A16646C00FCA57D /* sdsz74App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = sdsz74App.swift; sourceTree = "<group>"; };
 		AB92C77E2A16646C00FCA57D /* sdsz74App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = sdsz74App.swift; sourceTree = "<group>"; };
 		AB92C7802A16646C00FCA57D /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
 		AB92C7802A16646C00FCA57D /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
 		AB92C7822A16646D00FCA57D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
 		AB92C7822A16646D00FCA57D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
 		AB92C7842A16646D00FCA57D /* sdsz74.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = sdsz74.entitlements; sourceTree = "<group>"; };
 		AB92C7842A16646D00FCA57D /* sdsz74.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = sdsz74.entitlements; sourceTree = "<group>"; };
 		AB92C7862A16646D00FCA57D /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
 		AB92C7862A16646D00FCA57D /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
-		AB92C78C2A16646D00FCA57D /* sdsz74Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = sdsz74Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		AB92C78C2A16646D00FCA57D /* 74Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "74 桌Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
 		AB92C7902A16646D00FCA57D /* sdsz74Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = sdsz74Tests.swift; sourceTree = "<group>"; };
 		AB92C7902A16646D00FCA57D /* sdsz74Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = sdsz74Tests.swift; sourceTree = "<group>"; };
-		AB92C7962A16646D00FCA57D /* sdsz74UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = sdsz74UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		AB92C7962A16646D00FCA57D /* 74UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "74 桌UITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
 		AB92C79A2A16646D00FCA57D /* sdsz74UITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = sdsz74UITests.swift; sourceTree = "<group>"; };
 		AB92C79A2A16646D00FCA57D /* sdsz74UITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = sdsz74UITests.swift; sourceTree = "<group>"; };
 		AB92C79C2A16646D00FCA57D /* sdsz74UITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = sdsz74UITestsLaunchTests.swift; sourceTree = "<group>"; };
 		AB92C79C2A16646D00FCA57D /* sdsz74UITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = sdsz74UITestsLaunchTests.swift; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 /* End PBXFileReference section */
@@ -85,9 +89,9 @@
 		AB92C77C2A16646C00FCA57D /* Products */ = {
 		AB92C77C2A16646C00FCA57D /* Products */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
-				AB92C77B2A16646C00FCA57D /* sdsz74.app */,
-				AB92C78C2A16646D00FCA57D /* sdsz74Tests.xctest */,
-				AB92C7962A16646D00FCA57D /* sdsz74UITests.xctest */,
+				AB92C77B2A16646C00FCA57D /* 74.app */,
+				AB92C78C2A16646D00FCA57D /* 74Tests.xctest */,
+				AB92C7962A16646D00FCA57D /* 74UITests.xctest */,
 			);
 			);
 			name = Products;
 			name = Products;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
@@ -97,6 +101,8 @@
 			children = (
 			children = (
 				AB92C77E2A16646C00FCA57D /* sdsz74App.swift */,
 				AB92C77E2A16646C00FCA57D /* sdsz74App.swift */,
 				AB92C7802A16646C00FCA57D /* ContentView.swift */,
 				AB92C7802A16646C00FCA57D /* ContentView.swift */,
+				AB54244C2A184B1500BFC98E /* exam.swift */,
+				AB54244E2A184B1F00BFC98E /* message.swift */,
 				AB92C7822A16646D00FCA57D /* Assets.xcassets */,
 				AB92C7822A16646D00FCA57D /* Assets.xcassets */,
 				AB92C7842A16646D00FCA57D /* sdsz74.entitlements */,
 				AB92C7842A16646D00FCA57D /* sdsz74.entitlements */,
 				AB92C7852A16646D00FCA57D /* Preview Content */,
 				AB92C7852A16646D00FCA57D /* Preview Content */,
@@ -132,9 +138,9 @@
 /* End PBXGroup section */
 /* End PBXGroup section */
 
 
 /* Begin PBXNativeTarget section */
 /* Begin PBXNativeTarget section */
-		AB92C77A2A16646C00FCA57D /* sdsz74 */ = {
+		AB92C77A2A16646C00FCA57D /* 74 */ = {
 			isa = PBXNativeTarget;
 			isa = PBXNativeTarget;
-			buildConfigurationList = AB92C7A02A16646D00FCA57D /* Build configuration list for PBXNativeTarget "sdsz74" */;
+			buildConfigurationList = AB92C7A02A16646D00FCA57D /* Build configuration list for PBXNativeTarget "74" */;
 			buildPhases = (
 			buildPhases = (
 				AB92C7772A16646C00FCA57D /* Sources */,
 				AB92C7772A16646C00FCA57D /* Sources */,
 				AB92C7782A16646C00FCA57D /* Frameworks */,
 				AB92C7782A16646C00FCA57D /* Frameworks */,
@@ -144,14 +150,14 @@
 			);
 			);
 			dependencies = (
 			dependencies = (
 			);
 			);
-			name = sdsz74;
+			name = "74 桌";
 			productName = sdsz74;
 			productName = sdsz74;
-			productReference = AB92C77B2A16646C00FCA57D /* sdsz74.app */;
+			productReference = AB92C77B2A16646C00FCA57D /* 74.app */;
 			productType = "com.apple.product-type.application";
 			productType = "com.apple.product-type.application";
 		};
 		};
-		AB92C78B2A16646D00FCA57D /* sdsz74Tests */ = {
+		AB92C78B2A16646D00FCA57D /* 74Tests */ = {
 			isa = PBXNativeTarget;
 			isa = PBXNativeTarget;
-			buildConfigurationList = AB92C7A32A16646D00FCA57D /* Build configuration list for PBXNativeTarget "sdsz74Tests" */;
+			buildConfigurationList = AB92C7A32A16646D00FCA57D /* Build configuration list for PBXNativeTarget "74Tests" */;
 			buildPhases = (
 			buildPhases = (
 				AB92C7882A16646D00FCA57D /* Sources */,
 				AB92C7882A16646D00FCA57D /* Sources */,
 				AB92C7892A16646D00FCA57D /* Frameworks */,
 				AB92C7892A16646D00FCA57D /* Frameworks */,
@@ -162,14 +168,14 @@
 			dependencies = (
 			dependencies = (
 				AB92C78E2A16646D00FCA57D /* PBXTargetDependency */,
 				AB92C78E2A16646D00FCA57D /* PBXTargetDependency */,
 			);
 			);
-			name = sdsz74Tests;
+			name = "74 桌Tests";
 			productName = sdsz74Tests;
 			productName = sdsz74Tests;
-			productReference = AB92C78C2A16646D00FCA57D /* sdsz74Tests.xctest */;
+			productReference = AB92C78C2A16646D00FCA57D /* 74Tests.xctest */;
 			productType = "com.apple.product-type.bundle.unit-test";
 			productType = "com.apple.product-type.bundle.unit-test";
 		};
 		};
-		AB92C7952A16646D00FCA57D /* sdsz74UITests */ = {
+		AB92C7952A16646D00FCA57D /* 74UITests */ = {
 			isa = PBXNativeTarget;
 			isa = PBXNativeTarget;
-			buildConfigurationList = AB92C7A62A16646D00FCA57D /* Build configuration list for PBXNativeTarget "sdsz74UITests" */;
+			buildConfigurationList = AB92C7A62A16646D00FCA57D /* Build configuration list for PBXNativeTarget "74UITests" */;
 			buildPhases = (
 			buildPhases = (
 				AB92C7922A16646D00FCA57D /* Sources */,
 				AB92C7922A16646D00FCA57D /* Sources */,
 				AB92C7932A16646D00FCA57D /* Frameworks */,
 				AB92C7932A16646D00FCA57D /* Frameworks */,
@@ -180,9 +186,9 @@
 			dependencies = (
 			dependencies = (
 				AB92C7982A16646D00FCA57D /* PBXTargetDependency */,
 				AB92C7982A16646D00FCA57D /* PBXTargetDependency */,
 			);
 			);
-			name = sdsz74UITests;
+			name = "74 桌UITests";
 			productName = sdsz74UITests;
 			productName = sdsz74UITests;
-			productReference = AB92C7962A16646D00FCA57D /* sdsz74UITests.xctest */;
+			productReference = AB92C7962A16646D00FCA57D /* 74UITests.xctest */;
 			productType = "com.apple.product-type.bundle.ui-testing";
 			productType = "com.apple.product-type.bundle.ui-testing";
 		};
 		};
 /* End PBXNativeTarget section */
 /* End PBXNativeTarget section */
@@ -208,7 +214,7 @@
 					};
 					};
 				};
 				};
 			};
 			};
-			buildConfigurationList = AB92C7762A16646C00FCA57D /* Build configuration list for PBXProject "sdsz74" */;
+			buildConfigurationList = AB92C7762A16646C00FCA57D /* Build configuration list for PBXProject "74" */;
 			compatibilityVersion = "Xcode 14.0";
 			compatibilityVersion = "Xcode 14.0";
 			developmentRegion = en;
 			developmentRegion = en;
 			hasScannedForEncodings = 0;
 			hasScannedForEncodings = 0;
@@ -221,9 +227,9 @@
 			projectDirPath = "";
 			projectDirPath = "";
 			projectRoot = "";
 			projectRoot = "";
 			targets = (
 			targets = (
-				AB92C77A2A16646C00FCA57D /* sdsz74 */,
-				AB92C78B2A16646D00FCA57D /* sdsz74Tests */,
-				AB92C7952A16646D00FCA57D /* sdsz74UITests */,
+				AB92C77A2A16646C00FCA57D /* 74 */,
+				AB92C78B2A16646D00FCA57D /* 74Tests */,
+				AB92C7952A16646D00FCA57D /* 74UITests */,
 			);
 			);
 		};
 		};
 /* End PBXProject section */
 /* End PBXProject section */
@@ -260,6 +266,8 @@
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
 				AB92C7812A16646C00FCA57D /* ContentView.swift in Sources */,
 				AB92C7812A16646C00FCA57D /* ContentView.swift in Sources */,
+				AB54244F2A184B1F00BFC98E /* message.swift in Sources */,
+				AB54244D2A184B1500BFC98E /* exam.swift in Sources */,
 				AB92C77F2A16646C00FCA57D /* sdsz74App.swift in Sources */,
 				AB92C77F2A16646C00FCA57D /* sdsz74App.swift in Sources */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
@@ -286,12 +294,12 @@
 /* Begin PBXTargetDependency section */
 /* Begin PBXTargetDependency section */
 		AB92C78E2A16646D00FCA57D /* PBXTargetDependency */ = {
 		AB92C78E2A16646D00FCA57D /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			isa = PBXTargetDependency;
-			target = AB92C77A2A16646C00FCA57D /* sdsz74 */;
+			target = AB92C77A2A16646C00FCA57D /* 74 */;
 			targetProxy = AB92C78D2A16646D00FCA57D /* PBXContainerItemProxy */;
 			targetProxy = AB92C78D2A16646D00FCA57D /* PBXContainerItemProxy */;
 		};
 		};
 		AB92C7982A16646D00FCA57D /* PBXTargetDependency */ = {
 		AB92C7982A16646D00FCA57D /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			isa = PBXTargetDependency;
-			target = AB92C77A2A16646C00FCA57D /* sdsz74 */;
+			target = AB92C77A2A16646C00FCA57D /* 74 */;
 			targetProxy = AB92C7972A16646D00FCA57D /* PBXContainerItemProxy */;
 			targetProxy = AB92C7972A16646D00FCA57D /* PBXContainerItemProxy */;
 		};
 		};
 /* End PBXTargetDependency section */
 /* End PBXTargetDependency section */
@@ -412,9 +420,11 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_ENTITLEMENTS = sdsz74/sdsz74.entitlements;
 				CODE_SIGN_ENTITLEMENTS = sdsz74/sdsz74.entitlements;
+				"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1;
 				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_ASSET_PATHS = "\"sdsz74/Preview Content\"";
 				DEVELOPMENT_ASSET_PATHS = "\"sdsz74/Preview Content\"";
+				DEVELOPMENT_TEAM = 92QU5ZGYN7;
 				ENABLE_PREVIEWS = YES;
 				ENABLE_PREVIEWS = YES;
 				GENERATE_INFOPLIST_FILE = YES;
 				GENERATE_INFOPLIST_FILE = YES;
 				"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
 				"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
@@ -448,9 +458,11 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_ENTITLEMENTS = sdsz74/sdsz74.entitlements;
 				CODE_SIGN_ENTITLEMENTS = sdsz74/sdsz74.entitlements;
+				"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1;
 				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_ASSET_PATHS = "\"sdsz74/Preview Content\"";
 				DEVELOPMENT_ASSET_PATHS = "\"sdsz74/Preview Content\"";
+				DEVELOPMENT_TEAM = 92QU5ZGYN7;
 				ENABLE_PREVIEWS = YES;
 				ENABLE_PREVIEWS = YES;
 				GENERATE_INFOPLIST_FILE = YES;
 				GENERATE_INFOPLIST_FILE = YES;
 				"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
 				"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
@@ -485,6 +497,7 @@
 				BUNDLE_LOADER = "$(TEST_HOST)";
 				BUNDLE_LOADER = "$(TEST_HOST)";
 				CODE_SIGN_STYLE = Automatic;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1;
 				CURRENT_PROJECT_VERSION = 1;
+				DEVELOPMENT_TEAM = 92QU5ZGYN7;
 				GENERATE_INFOPLIST_FILE = YES;
 				GENERATE_INFOPLIST_FILE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 16.4;
 				IPHONEOS_DEPLOYMENT_TARGET = 16.4;
 				MACOSX_DEPLOYMENT_TARGET = 13.0;
 				MACOSX_DEPLOYMENT_TARGET = 13.0;
@@ -496,7 +509,7 @@
 				SWIFT_EMIT_LOC_STRINGS = NO;
 				SWIFT_EMIT_LOC_STRINGS = NO;
 				SWIFT_VERSION = 5.0;
 				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
-				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/sdsz74.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/sdsz74";
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/74.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/74";
 			};
 			};
 			name = Debug;
 			name = Debug;
 		};
 		};
@@ -507,6 +520,7 @@
 				BUNDLE_LOADER = "$(TEST_HOST)";
 				BUNDLE_LOADER = "$(TEST_HOST)";
 				CODE_SIGN_STYLE = Automatic;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1;
 				CURRENT_PROJECT_VERSION = 1;
+				DEVELOPMENT_TEAM = 92QU5ZGYN7;
 				GENERATE_INFOPLIST_FILE = YES;
 				GENERATE_INFOPLIST_FILE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 16.4;
 				IPHONEOS_DEPLOYMENT_TARGET = 16.4;
 				MACOSX_DEPLOYMENT_TARGET = 13.0;
 				MACOSX_DEPLOYMENT_TARGET = 13.0;
@@ -518,7 +532,7 @@
 				SWIFT_EMIT_LOC_STRINGS = NO;
 				SWIFT_EMIT_LOC_STRINGS = NO;
 				SWIFT_VERSION = 5.0;
 				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
-				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/sdsz74.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/sdsz74";
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/74.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/74";
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
@@ -528,6 +542,7 @@
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				CODE_SIGN_STYLE = Automatic;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1;
 				CURRENT_PROJECT_VERSION = 1;
+				DEVELOPMENT_TEAM = 92QU5ZGYN7;
 				GENERATE_INFOPLIST_FILE = YES;
 				GENERATE_INFOPLIST_FILE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 16.4;
 				IPHONEOS_DEPLOYMENT_TARGET = 16.4;
 				MACOSX_DEPLOYMENT_TARGET = 13.0;
 				MACOSX_DEPLOYMENT_TARGET = 13.0;
@@ -549,6 +564,7 @@
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				CODE_SIGN_STYLE = Automatic;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1;
 				CURRENT_PROJECT_VERSION = 1;
+				DEVELOPMENT_TEAM = 92QU5ZGYN7;
 				GENERATE_INFOPLIST_FILE = YES;
 				GENERATE_INFOPLIST_FILE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 16.4;
 				IPHONEOS_DEPLOYMENT_TARGET = 16.4;
 				MACOSX_DEPLOYMENT_TARGET = 13.0;
 				MACOSX_DEPLOYMENT_TARGET = 13.0;
@@ -567,7 +583,7 @@
 /* End XCBuildConfiguration section */
 /* End XCBuildConfiguration section */
 
 
 /* Begin XCConfigurationList section */
 /* Begin XCConfigurationList section */
-		AB92C7762A16646C00FCA57D /* Build configuration list for PBXProject "sdsz74" */ = {
+		AB92C7762A16646C00FCA57D /* Build configuration list for PBXProject "74" */ = {
 			isa = XCConfigurationList;
 			isa = XCConfigurationList;
 			buildConfigurations = (
 			buildConfigurations = (
 				AB92C79E2A16646D00FCA57D /* Debug */,
 				AB92C79E2A16646D00FCA57D /* Debug */,
@@ -576,7 +592,7 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 			defaultConfigurationName = Release;
 		};
 		};
-		AB92C7A02A16646D00FCA57D /* Build configuration list for PBXNativeTarget "sdsz74" */ = {
+		AB92C7A02A16646D00FCA57D /* Build configuration list for PBXNativeTarget "74" */ = {
 			isa = XCConfigurationList;
 			isa = XCConfigurationList;
 			buildConfigurations = (
 			buildConfigurations = (
 				AB92C7A12A16646D00FCA57D /* Debug */,
 				AB92C7A12A16646D00FCA57D /* Debug */,
@@ -585,7 +601,7 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 			defaultConfigurationName = Release;
 		};
 		};
-		AB92C7A32A16646D00FCA57D /* Build configuration list for PBXNativeTarget "sdsz74Tests" */ = {
+		AB92C7A32A16646D00FCA57D /* Build configuration list for PBXNativeTarget "74Tests" */ = {
 			isa = XCConfigurationList;
 			isa = XCConfigurationList;
 			buildConfigurations = (
 			buildConfigurations = (
 				AB92C7A42A16646D00FCA57D /* Debug */,
 				AB92C7A42A16646D00FCA57D /* Debug */,
@@ -594,7 +610,7 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 			defaultConfigurationName = Release;
 		};
 		};
-		AB92C7A62A16646D00FCA57D /* Build configuration list for PBXNativeTarget "sdsz74UITests" */ = {
+		AB92C7A62A16646D00FCA57D /* Build configuration list for PBXNativeTarget "74UITests" */ = {
 			isa = XCConfigurationList;
 			isa = XCConfigurationList;
 			buildConfigurations = (
 			buildConfigurations = (
 				AB92C7A72A16646D00FCA57D /* Debug */,
 				AB92C7A72A16646D00FCA57D /* Debug */,

+ 1 - 1
sdsz74.xcodeproj/project.xcworkspace/contents.xcworkspacedata → 74 桌.xcodeproj/project.xcworkspace/contents.xcworkspacedata

@@ -2,6 +2,6 @@
 <Workspace
 <Workspace
    version = "1.0">
    version = "1.0">
    <FileRef
    <FileRef
-      location = "self:">
+      location = "self:/Users/yunli/Documents/74/sdsz74/74 &#x684c;.xcodeproj">
    </FileRef>
    </FileRef>
 </Workspace>
 </Workspace>

+ 0 - 0
sdsz74.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist → 74 桌.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist


+ 5 - 0
74 桌.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict/>
+</plist>

+ 14 - 0
74 桌.xcodeproj/project.xcworkspace/xcuserdata/yunli.xcuserdatad/WorkspaceSettings.xcsettings

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>BuildLocationStyle</key>
+	<string>UseAppPreferences</string>
+	<key>CustomBuildLocationType</key>
+	<string>RelativeToDerivedData</string>
+	<key>DerivedDataLocationStyle</key>
+	<string>Default</string>
+	<key>ShowSharedSchemesAutomaticallyEnabled</key>
+	<true/>
+</dict>
+</plist>

+ 5 - 0
sdsz74.xcodeproj/xcuserdata/yunli.xcuserdatad/xcschemes/xcschememanagement.plist → 74 桌.xcodeproj/xcuserdata/yunli.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -4,6 +4,11 @@
 <dict>
 <dict>
 	<key>SchemeUserState</key>
 	<key>SchemeUserState</key>
 	<dict>
 	<dict>
+		<key>74 桌.xcscheme_^#shared#^_</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>0</integer>
+		</dict>
 		<key>sdsz74.xcscheme_^#shared#^_</key>
 		<key>sdsz74.xcscheme_^#shared#^_</key>
 		<dict>
 		<dict>
 			<key>orderHint</key>
 			<key>orderHint</key>

+ 1 - 0
sdsz74/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -1,6 +1,7 @@
 {
 {
   "images" : [
   "images" : [
     {
     {
+      "filename" : "favicon Large.jpg",
       "idiom" : "universal",
       "idiom" : "universal",
       "platform" : "ios",
       "platform" : "ios",
       "size" : "1024x1024"
       "size" : "1024x1024"

BIN
sdsz74/Assets.xcassets/AppIcon.appiconset/favicon Large.jpg


+ 112 - 6
sdsz74/ContentView.swift

@@ -8,14 +8,120 @@
 import SwiftUI
 import SwiftUI
 
 
 struct ContentView: View {
 struct ContentView: View {
+    @State private var examCount = 0
+    @State private var messageCount = 0
+    @State private var isLoggedIn = 0
     var body: some View {
     var body: some View {
-        VStack {
-            Image(systemName: "globe")
-                .imageScale(.large)
-                .foregroundColor(.accentColor)
-            Text("Hello, world!")
+        TabView{
+            NavigationView {
+                NavigationLink(destination: examListView(count:$examCount)) {
+                    Text("共 \(examCount) 场考试")
+                }
+                .navigationBarTitle("74 桌")
+            }
+                .tabItem({Image(systemName: "chart.bar.fill")
+                    Text("成绩分析")})
+            NavigationView {
+                List{
+                    NavigationLink(destination: messageView(count:$messageCount)) {
+                        Text("消息")
+                            .badge(messageCount)
+                    }
+                }
+                .navigationBarTitle("数字校园")
+            }
+                .tabItem({Image(systemName: "graduationcap")
+                    Text("数字校园")})
+            NavigationView{
+                if isLoggedIn != 0{
+                    accountView(isLoggedIn: $isLoggedIn)
+                    .navigationBarTitle("账号")
+                }
+                else{
+                    loginView(isLoggedIn:$isLoggedIn)
+                    .navigationBarTitle("登录")
+                }
+            }
+                .tabItem({Image(systemName: "person")
+                    Text("账号")})
+            
+        }
+    }
+}
+
+extension View {
+    func hideKeyboard() {
+        UIApplication.shared.sendAction(
+            #selector(UIResponder.resignFirstResponder),
+            to: nil,
+            from: nil,
+            for: nil
+        )
+    }
+}
+
+func doLogin(status:inout Int)->Void{
+    status=1
+}
+
+struct loginView:View{
+    @State var username: String = ""
+    @State var password: String = ""
+    @FocusState private var isFocused:Bool
+    @Binding var isLoggedIn: Int
+    var body: some View {
+        VStack{
+            Form {
+                Section{
+                    TextField(text: $username, prompt: Text("数字校园号")) {
+                        Text("Username")
+                    }.focused($isFocused)
+                    SecureField(text: $password, prompt: Text("密码")) {
+                        Text("Password")
+                    }.focused($isFocused)
+                }.onTapGesture  {
+                    isFocused=false
+                }
+                Section{
+                    HStack{
+                        Spacer()
+                        Button(action:{doLogin(status: &isLoggedIn)}){
+                            VStack{
+                                Text("登录")
+                            }
+                        }.font(.title3)
+                        Spacer()
+                    }
+                }
+            }
+            Spacer()
+        }
+    }
+}
+
+struct accountView:View{
+    @State var username: String = ""
+    @State var password: String = ""
+    @FocusState private var isFocused:Bool
+    @Binding var isLoggedIn: Int
+    var body: some View {
+        VStack{
+            Form {
+                Section(header:Text("hi")){
+                    Text("一些")
+                    Text("一些")
+                    Text("东西")
+                }
+                Section{
+                    Button(action:{isLoggedIn=0}){
+                        VStack{
+                            Text("退出").foregroundColor(.red)
+                        }
+                    }
+                }
+            }
+            Spacer()
         }
         }
-        .padding()
     }
     }
 }
 }
 
 

+ 23 - 0
sdsz74/exam.swift

@@ -0,0 +1,23 @@
+//
+//  exam.swift
+//  74 桌
+//
+//  Created by yunli on 2023/5/20.
+//
+
+import SwiftUI
+
+struct examListView: View {
+    @Binding var count: Int
+    var body: some View {
+        List{
+            ForEach(0..<count,id:\.self) { item in
+                Text("\(item)")
+            }
+            Button(action:{count+=1}) {
+                Label("添加考试", systemImage: "plus")
+            }
+        }
+        .navigationBarTitle("考试列表")
+    }
+}

+ 23 - 0
sdsz74/message.swift

@@ -0,0 +1,23 @@
+//
+//  message.swift
+//  74 桌
+//
+//  Created by yunli on 2023/5/20.
+//
+
+import SwiftUI
+
+struct messageView: View {
+    @Binding var count: Int
+    var body: some View {
+        List{
+            ForEach(0..<count,id:\.self) { item in
+                Text("\(item)")
+            }
+            Button(action:{count+=1;print(count)}) {
+                Label("添加消息", systemImage: "plus")
+            }
+        }
+        .navigationBarTitle("消息列表")
+    }
+}