From 99c2748b85831d9ad051d810404b3d749ddb5f4c Mon Sep 17 00:00:00 2001 From: Roger Luo Date: Tue, 29 Dec 2020 23:25:09 +0800 Subject: [PATCH] update to swift 5 --- .../APIJSONTest.xcodeproj/project.pbxproj | 9 +++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 +++ .../UserInterfaceState.xcuserstate | Bin 0 -> 28582 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 56 ++++++++++++++++++ .../xcschemes/xcschememanagement.plist | 14 +++++ .../APIJSONTest/Base.lproj/Main.storyboard | 16 +++-- .../APIJSONTest/ViewController.swift | 38 ++++++------ 7 files changed, 117 insertions(+), 24 deletions(-) create mode 100644 APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/project.xcworkspace/xcuserdata/rogerluo.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/xcuserdata/rogerluo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/xcuserdata/rogerluo.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/project.pbxproj b/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/project.pbxproj index 08255a21..b540c05f 100644 --- a/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/project.pbxproj +++ b/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/project.pbxproj @@ -193,6 +193,7 @@ TargetAttributes = { 655C4C5A1FCDCACA00EE5EF8 = { CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = 7KXVPC4Y3C; }; 655C4C6E1FCDCACA00EE5EF8 = { CreatedOnToolsVersion = 7.3.1; @@ -209,6 +210,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -399,10 +401,12 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEVELOPMENT_TEAM = 7KXVPC4Y3C; INFOPLIST_FILE = APIJSONTest/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.apijson.APIJSONTest; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -410,10 +414,12 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEVELOPMENT_TEAM = 7KXVPC4Y3C; INFOPLIST_FILE = APIJSONTest/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.apijson.APIJSONTest; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -482,6 +488,7 @@ 655C4C851FCDCACA00EE5EF8 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; 655C4C861FCDCACA00EE5EF8 /* Build configuration list for PBXNativeTarget "APIJSONTestTests" */ = { isa = XCConfigurationList; @@ -490,6 +497,7 @@ 655C4C881FCDCACA00EE5EF8 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; 655C4C891FCDCACA00EE5EF8 /* Build configuration list for PBXNativeTarget "APIJSONTestUITests" */ = { isa = XCConfigurationList; @@ -498,6 +506,7 @@ 655C4C8B1FCDCACA00EE5EF8 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/project.xcworkspace/xcuserdata/rogerluo.xcuserdatad/UserInterfaceState.xcuserstate b/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/project.xcworkspace/xcuserdata/rogerluo.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..0007f6fab4da8f2686f5fb673bf2748299335559 GIT binary patch literal 28582 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

EY= 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 literal 0 HcmV?d00001 diff --git a/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/xcuserdata/rogerluo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/xcuserdata/rogerluo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 00000000..4c87e6b6 --- /dev/null +++ b/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/xcuserdata/rogerluo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + diff --git a/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/xcuserdata/rogerluo.xcuserdatad/xcschemes/xcschememanagement.plist b/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/xcuserdata/rogerluo.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..808e570f --- /dev/null +++ b/APIJSON-iOS/APIJSON-Swift/APIJSONTest.xcodeproj/xcuserdata/rogerluo.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + APIJSONTest.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/APIJSON-iOS/APIJSON-Swift/APIJSONTest/Base.lproj/Main.storyboard b/APIJSON-iOS/APIJSON-Swift/APIJSONTest/Base.lproj/Main.storyboard index 3a2a49ba..2b33aa08 100644 --- a/APIJSON-iOS/APIJSON-Swift/APIJSONTest/Base.lproj/Main.storyboard +++ b/APIJSON-iOS/APIJSON-Swift/APIJSONTest/Base.lproj/Main.storyboard @@ -1,25 +1,29 @@ - - + + + - + + + - + - + - + + diff --git a/APIJSON-iOS/APIJSON-Swift/APIJSONTest/ViewController.swift b/APIJSON-iOS/APIJSON-Swift/APIJSONTest/ViewController.swift index ca341e09..fa64a6fc 100644 --- a/APIJSON-iOS/APIJSON-Swift/APIJSONTest/ViewController.swift +++ b/APIJSON-iOS/APIJSON-Swift/APIJSONTest/ViewController.swift @@ -52,10 +52,10 @@ class ViewController: UIViewController { requestLabel.numberOfLines = 6 self.view.addSubview(requestLabel) - let responseLable = UILabel(frame:CGRect(x:20, y:130, width:400, height:600)) - responseLable.text = "request..." - responseLable.numberOfLines = 100 - self.view.addSubview(responseLable) + let responseLabel = UILabel(frame:CGRect(x:20, y:130, width:400, height:600)) + responseLabel.text = "request..." + responseLabel.numberOfLines = 100 + self.view.addSubview(responseLabel) //生成UI >>>>>>>>>>>>>>>>>>>>> @@ -65,23 +65,23 @@ class ViewController: UIViewController { //请求URL - let request:NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: url)!) + let request = NSMutableURLRequest(url: URL(string: url)!) - request.HTTPMethod = "POST" + request.httpMethod = "POST" //设置发送的数据格式为JSON request.setValue("application/json", forHTTPHeaderField: "Content-Type") do { - request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(json, options: NSJSONWritingOptions.PrettyPrinted) + request.httpBody = try JSONSerialization.data(withJSONObject: json, options: JSONSerialization.WritingOptions.prettyPrinted) } catch { print("Something went wrong!") } //默认session配置 - let config = NSURLSessionConfiguration.defaultSessionConfiguration() - let session = NSURLSession(configuration: config) + let config = URLSessionConfiguration.default + let session = URLSession(configuration: config) //发起请求 - let dataTask = session.dataTaskWithRequest(request) { (data, response, error) in + let dataTask = session.dataTask(with: request as URLRequest) { (data, response, error) in print("\n\nreceived result!\n\n") @@ -90,20 +90,20 @@ class ViewController: UIViewController { print(error) //数据类型转换 - let jsonData:NSDictionary = try! NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as! NSDictionary + let jsonData:NSDictionary = try! JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! NSDictionary print(jsonData) - let res:String = self.toJSONString(jsonData); + let res:String = self.toJSONString(jsonData as! [String : Any]); print("Response = \n" + res) //显示返回结果 - dispatch_async(dispatch_get_main_queue(), { + DispatchQueue.main.async { - responseLable.text = "Response:\n" + res + responseLabel.text = "Response:\n" + res print("set text end\n\n") - }); + } } @@ -111,9 +111,11 @@ class ViewController: UIViewController { dataTask.resume() } - func toJSONString(jsonData: NSDictionary!) -> String { - let data : NSData! = try? NSJSONSerialization.dataWithJSONObject(jsonData, options: [NSJSONWritingOptions.PrettyPrinted]) as NSData! - let str = String(data: data, encoding: NSUTF8StringEncoding) + func toJSONString(_ jsonData: [String: Any]!) -> String { + guard let data = try? JSONSerialization.data(withJSONObject: jsonData!, options: [JSONSerialization.WritingOptions.prettyPrinted]) else { + return "" + } + let str = String(data: data, encoding: String.Encoding.utf8) return str! }