diff --git a/SQCleanBulk/SQCleanBulk.xcodeproj/project.pbxproj b/SQCleanBulk/SQCleanBulk.xcodeproj/project.pbxproj deleted file mode 100644 index 55ed022c..00000000 --- a/SQCleanBulk/SQCleanBulk.xcodeproj/project.pbxproj +++ /dev/null @@ -1,375 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 14AE5FC3234F04310091FF67 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AE5FC2234F04310091FF67 /* AppDelegate.m */; }; - 14AE5FC6234F04310091FF67 /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AE5FC5234F04310091FF67 /* SceneDelegate.m */; }; - 14AE5FC9234F04310091FF67 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AE5FC8234F04310091FF67 /* ViewController.m */; }; - 14AE5FCC234F04310091FF67 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14AE5FCA234F04310091FF67 /* Main.storyboard */; }; - 14AE5FCF234F04310091FF67 /* SQCleanBulk.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 14AE5FCD234F04310091FF67 /* SQCleanBulk.xcdatamodeld */; }; - 14AE5FD1234F04320091FF67 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 14AE5FD0234F04320091FF67 /* Assets.xcassets */; }; - 14AE5FD4234F04320091FF67 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14AE5FD2234F04320091FF67 /* LaunchScreen.storyboard */; }; - 14AE5FD7234F04320091FF67 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AE5FD6234F04320091FF67 /* main.m */; }; - 14AE5FE1234F26C30091FF67 /* SQNumberPadHandleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 14AE5FE0234F26C30091FF67 /* SQNumberPadHandleView.xib */; }; - 14AE5FE4234F274D0091FF67 /* SQNumberPadHandleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AE5FE3234F274D0091FF67 /* SQNumberPadHandleView.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 14AE5FBE234F04310091FF67 /* SQCleanBulk.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SQCleanBulk.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 14AE5FC1234F04310091FF67 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 14AE5FC2234F04310091FF67 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 14AE5FC4234F04310091FF67 /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = ""; }; - 14AE5FC5234F04310091FF67 /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = ""; }; - 14AE5FC7234F04310091FF67 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - 14AE5FC8234F04310091FF67 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - 14AE5FCB234F04310091FF67 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 14AE5FCE234F04310091FF67 /* SQCleanBulk.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = SQCleanBulk.xcdatamodel; sourceTree = ""; }; - 14AE5FD0234F04320091FF67 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 14AE5FD3234F04320091FF67 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 14AE5FD5234F04320091FF67 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 14AE5FD6234F04320091FF67 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 14AE5FE0234F26C30091FF67 /* SQNumberPadHandleView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SQNumberPadHandleView.xib; sourceTree = ""; }; - 14AE5FE2234F274D0091FF67 /* SQNumberPadHandleView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SQNumberPadHandleView.h; sourceTree = ""; }; - 14AE5FE3234F274D0091FF67 /* SQNumberPadHandleView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SQNumberPadHandleView.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 14AE5FBB234F04310091FF67 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 14AE5FB5234F04310091FF67 = { - isa = PBXGroup; - children = ( - 14AE5FC0234F04310091FF67 /* SQCleanBulk */, - 14AE5FBF234F04310091FF67 /* Products */, - ); - sourceTree = ""; - }; - 14AE5FBF234F04310091FF67 /* Products */ = { - isa = PBXGroup; - children = ( - 14AE5FBE234F04310091FF67 /* SQCleanBulk.app */, - ); - name = Products; - sourceTree = ""; - }; - 14AE5FC0234F04310091FF67 /* SQCleanBulk */ = { - isa = PBXGroup; - children = ( - 14AE5FC1234F04310091FF67 /* AppDelegate.h */, - 14AE5FC2234F04310091FF67 /* AppDelegate.m */, - 14AE5FC4234F04310091FF67 /* SceneDelegate.h */, - 14AE5FC5234F04310091FF67 /* SceneDelegate.m */, - 14AE5FC7234F04310091FF67 /* ViewController.h */, - 14AE5FC8234F04310091FF67 /* ViewController.m */, - 14AE5FCA234F04310091FF67 /* Main.storyboard */, - 14AE5FE2234F274D0091FF67 /* SQNumberPadHandleView.h */, - 14AE5FE3234F274D0091FF67 /* SQNumberPadHandleView.m */, - 14AE5FE0234F26C30091FF67 /* SQNumberPadHandleView.xib */, - 14AE5FD0234F04320091FF67 /* Assets.xcassets */, - 14AE5FD2234F04320091FF67 /* LaunchScreen.storyboard */, - 14AE5FD5234F04320091FF67 /* Info.plist */, - 14AE5FD6234F04320091FF67 /* main.m */, - 14AE5FCD234F04310091FF67 /* SQCleanBulk.xcdatamodeld */, - ); - path = SQCleanBulk; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 14AE5FBD234F04310091FF67 /* SQCleanBulk */ = { - isa = PBXNativeTarget; - buildConfigurationList = 14AE5FDA234F04320091FF67 /* Build configuration list for PBXNativeTarget "SQCleanBulk" */; - buildPhases = ( - 14AE5FBA234F04310091FF67 /* Sources */, - 14AE5FBB234F04310091FF67 /* Frameworks */, - 14AE5FBC234F04310091FF67 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SQCleanBulk; - productName = SQCleanBulk; - productReference = 14AE5FBE234F04310091FF67 /* SQCleanBulk.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 14AE5FB6234F04310091FF67 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1100; - ORGANIZATIONNAME = "朱双泉"; - TargetAttributes = { - 14AE5FBD234F04310091FF67 = { - CreatedOnToolsVersion = 11.0; - }; - }; - }; - buildConfigurationList = 14AE5FB9234F04310091FF67 /* Build configuration list for PBXProject "SQCleanBulk" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 14AE5FB5234F04310091FF67; - productRefGroup = 14AE5FBF234F04310091FF67 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 14AE5FBD234F04310091FF67 /* SQCleanBulk */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 14AE5FBC234F04310091FF67 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 14AE5FD4234F04320091FF67 /* LaunchScreen.storyboard in Resources */, - 14AE5FD1234F04320091FF67 /* Assets.xcassets in Resources */, - 14AE5FCC234F04310091FF67 /* Main.storyboard in Resources */, - 14AE5FE1234F26C30091FF67 /* SQNumberPadHandleView.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 14AE5FBA234F04310091FF67 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 14AE5FD7234F04320091FF67 /* main.m in Sources */, - 14AE5FC9234F04310091FF67 /* ViewController.m in Sources */, - 14AE5FCF234F04310091FF67 /* SQCleanBulk.xcdatamodeld in Sources */, - 14AE5FE4234F274D0091FF67 /* SQNumberPadHandleView.m in Sources */, - 14AE5FC3234F04310091FF67 /* AppDelegate.m in Sources */, - 14AE5FC6234F04310091FF67 /* SceneDelegate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 14AE5FCA234F04310091FF67 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 14AE5FCB234F04310091FF67 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 14AE5FD2234F04320091FF67 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 14AE5FD3234F04320091FF67 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 14AE5FD8234F04320091FF67 /* 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; - 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 = 13.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 14AE5FD9234F04320091FF67 /* 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; - 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 = 13.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 14AE5FDB234F04320091FF67 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = NGPFU6GT2A; - INFOPLIST_FILE = SQCleanBulk/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = coderZsq.SQCleanBulk; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 14AE5FDC234F04320091FF67 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = NGPFU6GT2A; - INFOPLIST_FILE = SQCleanBulk/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = coderZsq.SQCleanBulk; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 14AE5FB9234F04310091FF67 /* Build configuration list for PBXProject "SQCleanBulk" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 14AE5FD8234F04320091FF67 /* Debug */, - 14AE5FD9234F04320091FF67 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 14AE5FDA234F04320091FF67 /* Build configuration list for PBXNativeTarget "SQCleanBulk" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 14AE5FDB234F04320091FF67 /* Debug */, - 14AE5FDC234F04320091FF67 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - -/* Begin XCVersionGroup section */ - 14AE5FCD234F04310091FF67 /* SQCleanBulk.xcdatamodeld */ = { - isa = XCVersionGroup; - children = ( - 14AE5FCE234F04310091FF67 /* SQCleanBulk.xcdatamodel */, - ); - currentVersion = 14AE5FCE234F04310091FF67 /* SQCleanBulk.xcdatamodel */; - path = SQCleanBulk.xcdatamodeld; - sourceTree = ""; - versionGroupType = wrapper.xcdatamodel; - }; -/* End XCVersionGroup section */ - }; - rootObject = 14AE5FB6234F04310091FF67 /* Project object */; -} diff --git a/SQCleanBulk/SQCleanBulk.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SQCleanBulk/SQCleanBulk.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 440509bf..00000000 --- a/SQCleanBulk/SQCleanBulk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/SQCleanBulk/SQCleanBulk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SQCleanBulk/SQCleanBulk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/SQCleanBulk/SQCleanBulk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/SQCleanBulk/SQCleanBulk/AppDelegate.h b/SQCleanBulk/SQCleanBulk/AppDelegate.h deleted file mode 100644 index 8d58f953..00000000 --- a/SQCleanBulk/SQCleanBulk/AppDelegate.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// AppDelegate.h -// SQCleanBulk -// -// Created by 朱双泉 on 2019/10/10. -// Copyright © 2019 朱双泉. All rights reserved. -// - -#import -#import - -@interface AppDelegate : UIResponder - -@property (readonly, strong) NSPersistentCloudKitContainer *persistentContainer; - -- (void)saveContext; - - -@end - diff --git a/SQCleanBulk/SQCleanBulk/AppDelegate.m b/SQCleanBulk/SQCleanBulk/AppDelegate.m deleted file mode 100644 index 22a00882..00000000 --- a/SQCleanBulk/SQCleanBulk/AppDelegate.m +++ /dev/null @@ -1,86 +0,0 @@ -// -// AppDelegate.m -// SQCleanBulk -// -// Created by 朱双泉 on 2019/10/10. -// Copyright © 2019 朱双泉. All rights reserved. -// - -#import "AppDelegate.h" - -@interface AppDelegate () - -@end - -@implementation AppDelegate - - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - // Override point for customization after application launch. - return YES; -} - - -#pragma mark - UISceneSession lifecycle - - -- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options { - // Called when a new scene session is being created. - // Use this method to select a configuration to create the new scene with. - return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role]; -} - - -- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions { - // Called when the user discards a scene session. - // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. - // Use this method to release any resources that were specific to the discarded scenes, as they will not return. -} - - -#pragma mark - Core Data stack - -@synthesize persistentContainer = _persistentContainer; - -- (NSPersistentCloudKitContainer *)persistentContainer { - // The persistent container for the application. This implementation creates and returns a container, having loaded the store for the application to it. - @synchronized (self) { - if (_persistentContainer == nil) { - _persistentContainer = [[NSPersistentCloudKitContainer alloc] initWithName:@"SQCleanBulk"]; - [_persistentContainer loadPersistentStoresWithCompletionHandler:^(NSPersistentStoreDescription *storeDescription, NSError *error) { - if (error != nil) { - // Replace this implementation with code to handle the error appropriately. - // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. - - /* - Typical reasons for an error here include: - * The parent directory does not exist, cannot be created, or disallows writing. - * The persistent store is not accessible, due to permissions or data protection when the device is locked. - * The device is out of space. - * The store could not be migrated to the current model version. - Check the error message to determine what the actual problem was. - */ - NSLog(@"Unresolved error %@, %@", error, error.userInfo); - abort(); - } - }]; - } - } - - return _persistentContainer; -} - -#pragma mark - Core Data Saving support - -- (void)saveContext { - NSManagedObjectContext *context = self.persistentContainer.viewContext; - NSError *error = nil; - if ([context hasChanges] && ![context save:&error]) { - // Replace this implementation with code to handle the error appropriately. - // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. - NSLog(@"Unresolved error %@, %@", error, error.userInfo); - abort(); - } -} - -@end diff --git a/SQCleanBulk/SQCleanBulk/Assets.xcassets/AppIcon.appiconset/Contents.json b/SQCleanBulk/SQCleanBulk/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d8db8d65..00000000 --- a/SQCleanBulk/SQCleanBulk/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "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/SQCleanBulk/SQCleanBulk/Assets.xcassets/Contents.json b/SQCleanBulk/SQCleanBulk/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/SQCleanBulk/SQCleanBulk/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/SQCleanBulk/SQCleanBulk/Assets.xcassets/muscle.imageset/Contents.json b/SQCleanBulk/SQCleanBulk/Assets.xcassets/muscle.imageset/Contents.json deleted file mode 100644 index afa10f32..00000000 --- a/SQCleanBulk/SQCleanBulk/Assets.xcassets/muscle.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "肌肉力量.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "肌肉力量-1.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/SQCleanBulk/SQCleanBulk/Assets.xcassets/muscle.imageset/\350\202\214\350\202\211\345\212\233\351\207\217-1.png" "b/SQCleanBulk/SQCleanBulk/Assets.xcassets/muscle.imageset/\350\202\214\350\202\211\345\212\233\351\207\217-1.png" deleted file mode 100644 index 577b7f3c..00000000 Binary files "a/SQCleanBulk/SQCleanBulk/Assets.xcassets/muscle.imageset/\350\202\214\350\202\211\345\212\233\351\207\217-1.png" and /dev/null differ diff --git "a/SQCleanBulk/SQCleanBulk/Assets.xcassets/muscle.imageset/\350\202\214\350\202\211\345\212\233\351\207\217.png" "b/SQCleanBulk/SQCleanBulk/Assets.xcassets/muscle.imageset/\350\202\214\350\202\211\345\212\233\351\207\217.png" deleted file mode 100644 index 577b7f3c..00000000 Binary files "a/SQCleanBulk/SQCleanBulk/Assets.xcassets/muscle.imageset/\350\202\214\350\202\211\345\212\233\351\207\217.png" and /dev/null differ diff --git a/SQCleanBulk/SQCleanBulk/Base.lproj/LaunchScreen.storyboard b/SQCleanBulk/SQCleanBulk/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e9329..00000000 --- a/SQCleanBulk/SQCleanBulk/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SQCleanBulk/SQCleanBulk/Base.lproj/Main.storyboard b/SQCleanBulk/SQCleanBulk/Base.lproj/Main.storyboard deleted file mode 100644 index 57eca2e3..00000000 --- a/SQCleanBulk/SQCleanBulk/Base.lproj/Main.storyboard +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SQCleanBulk/SQCleanBulk/Info.plist b/SQCleanBulk/SQCleanBulk/Info.plist deleted file mode 100644 index 7b6037c2..00000000 --- a/SQCleanBulk/SQCleanBulk/Info.plist +++ /dev/null @@ -1,64 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - UISceneConfigurations - - UIWindowSceneSessionRoleApplication - - - UISceneConfigurationName - Default Configuration - UISceneDelegateClassName - SceneDelegate - UISceneStoryboardFile - Main - - - - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/SQCleanBulk/SQCleanBulk/SQCleanBulk.xcdatamodeld/.xccurrentversion b/SQCleanBulk/SQCleanBulk/SQCleanBulk.xcdatamodeld/.xccurrentversion deleted file mode 100644 index 5d3ec783..00000000 --- a/SQCleanBulk/SQCleanBulk/SQCleanBulk.xcdatamodeld/.xccurrentversion +++ /dev/null @@ -1,8 +0,0 @@ - - - - - _XCCurrentVersionName - SQCleanBulk.xcdatamodel - - diff --git a/SQCleanBulk/SQCleanBulk/SQCleanBulk.xcdatamodeld/SQCleanBulk.xcdatamodel/contents b/SQCleanBulk/SQCleanBulk/SQCleanBulk.xcdatamodeld/SQCleanBulk.xcdatamodel/contents deleted file mode 100644 index 5d6f17b7..00000000 --- a/SQCleanBulk/SQCleanBulk/SQCleanBulk.xcdatamodeld/SQCleanBulk.xcdatamodel/contents +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/SQCleanBulk/SQCleanBulk/SQNumberPadHandleView.h b/SQCleanBulk/SQCleanBulk/SQNumberPadHandleView.h deleted file mode 100644 index 250b4e05..00000000 --- a/SQCleanBulk/SQCleanBulk/SQNumberPadHandleView.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// SQNumberPadHandleView.h -// SQCleanBulk -// -// Created by 朱双泉 on 2019/10/10. -// Copyright © 2019 朱双泉. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SQNumberPadHandleView : UIView - -@property (weak, nonatomic) IBOutlet UIButton *completeButton; -@property (weak, nonatomic) IBOutlet UIButton *cancelButton; - -+ (instancetype)handleView; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SQCleanBulk/SQCleanBulk/SQNumberPadHandleView.m b/SQCleanBulk/SQCleanBulk/SQNumberPadHandleView.m deleted file mode 100644 index 62310b1c..00000000 --- a/SQCleanBulk/SQCleanBulk/SQNumberPadHandleView.m +++ /dev/null @@ -1,17 +0,0 @@ -// -// SQNumberPadHandleView.m -// SQCleanBulk -// -// Created by 朱双泉 on 2019/10/10. -// Copyright © 2019 朱双泉. All rights reserved. -// - -#import "SQNumberPadHandleView.h" - -@implementation SQNumberPadHandleView - -+ (instancetype)handleView { - return [[NSBundle bundleForClass:self.class] loadNibNamed:NSStringFromClass(self.class) owner:self options:nil].firstObject; -} - -@end diff --git a/SQCleanBulk/SQCleanBulk/SQNumberPadHandleView.xib b/SQCleanBulk/SQCleanBulk/SQNumberPadHandleView.xib deleted file mode 100644 index d841554a..00000000 --- a/SQCleanBulk/SQCleanBulk/SQNumberPadHandleView.xib +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SQCleanBulk/SQCleanBulk/SceneDelegate.h b/SQCleanBulk/SQCleanBulk/SceneDelegate.h deleted file mode 100644 index 75543fd0..00000000 --- a/SQCleanBulk/SQCleanBulk/SceneDelegate.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// SceneDelegate.h -// SQCleanBulk -// -// Created by 朱双泉 on 2019/10/10. -// Copyright © 2019 朱双泉. All rights reserved. -// - -#import - -@interface SceneDelegate : UIResponder - -@property (strong, nonatomic) UIWindow * window; - -@end - diff --git a/SQCleanBulk/SQCleanBulk/SceneDelegate.m b/SQCleanBulk/SQCleanBulk/SceneDelegate.m deleted file mode 100644 index 0c5e4d07..00000000 --- a/SQCleanBulk/SQCleanBulk/SceneDelegate.m +++ /dev/null @@ -1,54 +0,0 @@ -#import "SceneDelegate.h" -#import "AppDelegate.h" - -@interface SceneDelegate () - -@end - -@implementation SceneDelegate - - -- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions { - // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. - // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. - // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). -} - - -- (void)sceneDidDisconnect:(UIScene *)scene { - // Called as the scene is being released by the system. - // This occurs shortly after the scene enters the background, or when its session is discarded. - // Release any resources associated with this scene that can be re-created the next time the scene connects. - // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). -} - - -- (void)sceneDidBecomeActive:(UIScene *)scene { - // Called when the scene has moved from an inactive state to an active state. - // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. -} - - -- (void)sceneWillResignActive:(UIScene *)scene { - // Called when the scene will move from an active state to an inactive state. - // This may occur due to temporary interruptions (ex. an incoming phone call). -} - - -- (void)sceneWillEnterForeground:(UIScene *)scene { - // Called as the scene transitions from the background to the foreground. - // Use this method to undo the changes made on entering the background. -} - - -- (void)sceneDidEnterBackground:(UIScene *)scene { - // Called as the scene transitions from the foreground to the background. - // Use this method to save data, release shared resources, and store enough scene-specific state information - // to restore the scene back to its current state. - - // Save changes in the application's managed object context when the application transitions to the background. - [(AppDelegate *)UIApplication.sharedApplication.delegate saveContext]; -} - - -@end diff --git a/SQCleanBulk/SQCleanBulk/ViewController.h b/SQCleanBulk/SQCleanBulk/ViewController.h deleted file mode 100644 index 4cdad7b3..00000000 --- a/SQCleanBulk/SQCleanBulk/ViewController.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// ViewController.h -// SQCleanBulk -// -// Created by 朱双泉 on 2019/10/10. -// Copyright © 2019 朱双泉. All rights reserved. -// - -#import - -@interface ViewController : UIViewController - - -@end - diff --git a/SQCleanBulk/SQCleanBulk/ViewController.m b/SQCleanBulk/SQCleanBulk/ViewController.m deleted file mode 100644 index e5a9f592..00000000 --- a/SQCleanBulk/SQCleanBulk/ViewController.m +++ /dev/null @@ -1,92 +0,0 @@ -// -// ViewController.m -// SQCleanBulk -// -// Created by 朱双泉 on 2019/10/10. -// Copyright © 2019 朱双泉. All rights reserved. -// - -#import "ViewController.h" -#import "SQNumberPadHandleView.h" - -@interface ViewController () -@property (weak, nonatomic) IBOutlet UIButton *startButton; -@property (strong, nonatomic) IBOutletCollection(UITextField) NSArray *textFields; -@property (weak, nonatomic) SQNumberPadHandleView *handleView; -@property (assign, nonatomic) NSInteger textFieldIndex; -@end - -@implementation ViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - - SQNumberPadHandleView *handleView = [SQNumberPadHandleView handleView]; - handleView.frame = CGRectMake(0, self.view.bounds.size.height, self.view.bounds.size.width, 44); - [handleView.completeButton addTarget:self action:@selector(completeButtonEvents:) forControlEvents:(UIControlEventTouchUpInside)]; - [self.view addSubview:handleView]; - self.handleView = handleView; - self.textFieldIndex = 0; - for (UITextField *textField in self.textFields) { - CALayer *underline = [CALayer new]; - underline.frame = CGRectMake(10, textField.frame.size.height - 4, textField.frame.size.width - 20, 2.0); - underline.backgroundColor = [UIColor whiteColor].CGColor; - [textField.layer addSublayer:underline]; - [textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:(UIControlEventEditingChanged)]; - textField.delegate = self; - if (self.textFieldIndex == 0) { - [textField becomeFirstResponder]; - self.textFieldIndex = -1; - } - } - self.startButton.layer.cornerRadius = self.startButton.bounds.size.width * 0.5; - self.startButton.layer.masksToBounds = YES; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; -} - -- (void)textFieldDidBeginEditing:(UITextField *)textField { - self.textFieldIndex = [self.textFields indexOfObject:textField]; - NSLog(@"%li", self.textFieldIndex); -} - -- (void)textFieldDidChange:(UITextField *)textField { - if (textField.text.length > 2) { - textField.text = [textField.text substringToIndex:2]; - } -} - -- (void)keyboardWillShow:(NSNotification *)notification { - CGRect keyboardFrame = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; - [UIView animateWithDuration:0.25 animations:^{ - CGRect frame = self.handleView.frame; - frame.origin.y = self.view.bounds.size.height - keyboardFrame.size.height - self.handleView.frame.size.height; - self.handleView.frame = frame; - }]; -} - -- (void)keyboardWillHide:(NSNotification *)notification { - [UIView animateWithDuration:0.25 animations:^{ - CGRect frame = self.handleView.frame; - frame.origin.y = self.view.bounds.size.height + 20; - self.handleView.frame = frame; - }]; -} - -- (void)completeButtonEvents:(UIButton *)sender { - NSLog(@"%li - %li", self.textFieldIndex + 1, self.textFields.count); - if (self.textFieldIndex + 1 == self.textFields.count) { - UITextField *textField = self.textFields.lastObject; - [textField resignFirstResponder]; - return; - } - while (true) { - UITextField *textField = self.textFields[++self.textFieldIndex]; - if (!textField.text.length) { - [textField becomeFirstResponder]; - break; - } - } -} - -@end diff --git a/SQCleanBulk/SQCleanBulk/main.m b/SQCleanBulk/SQCleanBulk/main.m deleted file mode 100644 index 62c6e239..00000000 --- a/SQCleanBulk/SQCleanBulk/main.m +++ /dev/null @@ -1,19 +0,0 @@ -// -// main.m -// SQCleanBulk -// -// Created by 朱双泉 on 2019/10/10. -// Copyright © 2019 朱双泉. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - NSString * appDelegateClassName; - @autoreleasepool { - // Setup code that might create autoreleased objects goes here. - appDelegateClassName = NSStringFromClass([AppDelegate class]); - } - return UIApplicationMain(argc, argv, nil, appDelegateClassName); -}