Swift3.0 Optional String 类型 强制拆包
来源:互联网 发布:jersey框架 get json 编辑:程序博客网 时间:2024/06/08 14:24
/**
Swift3.0中 String的 Optional在String作为urlString去初始化url并进行网络访问时,会出现url为Optional包string的错误情况
如:在AFNetwork3.0的get请求中使用Optional类型的 String时,会有如下错误:
//NSErrorFailingURLStringKey=Optional(http://api.test.com/api/getcommon.php)?bundleId=com.dddd
所以要避免urlString为Optional类型
将 String类型转为Optional String类型为封包
将Optional String类型强制转换为String类型成为强制拆包
*/
//封包显式封包
let urlStrOptional:String? = "http://api.test.com/api/getcommon.php";
print("the urlStrOptional is\(urlStrOptional)")
//输出为:the urlStr is Optional("http://api.test.com/api/getcommon.php")不能作为urlString 去发送url请求
//封包隐式封包
//此处需要注意虽然在定义urlStr时定义为非Optional类型但是Swift3.0在使用 '=' 号 赋值时,左边的变量会被自动转换为Optional类型(称为隐式封包)
//这点是Swift3.0的一个特点需要特别注意!!!
let urlStr:String! = "http://api.test.com/api/getcommon.php";
print("the urlStr is\(urlStr)")
//输出为:the urlStr is Optional("http://api.test.com/api/getcommon.php")不能作为urlString 去发送url请求
//强制拆包
//当String被隐式封包时如果要作为初始化URL的String时,必须要进行强制拆包,强制拆包为在Optional类型的String参数后加上 '!'号
//上面的 urlStr已经被隐式封包 此处进行强制拆包
//urlStrOptional! 和 urlStr! 可作为初始化URL的String因为urlStrOptional! 和 urlStr!进行了强制拆包
print("the urlStrOptional is\(urlStrOptional!)")
print("the urlStr is\(urlStr!)")
//// ViewController.swift// test_swift3.0_Optional_01//// Created by jeffasd on 17/3/15.// Copyright © 2017年 jeffasd. All rights reserved.//import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { /** Swift3.0中 String的 Optional在String作为urlString去初始化url并进行网络访问时,会出现url为Optional包string的错误情况 如:在AFNetwork3.0的get请求中使用Optional 类型的 String时,会有如下错误: //NSErrorFailingURLStringKey=Optional(http://api.test.com/api/getcommon.php)?bundleId=com.dddd 所以要避免urlString为Optional类型 将 String类型转为Optional String类型为 封包 将Optional String 类型强制转换为String类型 成为强制拆包 */ //封包 显式封包 let urlStrOptional: String? = "http://api.test.com/api/getcommon.php"; print("the urlStrOptional is \(urlStrOptional)") //输出为:the urlStr is Optional("http://api.test.com/api/getcommon.php") 不能作为urlString 去发送url请求 //封包 隐式封包 //此处需要注意虽然在定义urlStr时定义为非Optional类型但是Swift3.0在使用 '=' 号 赋值时,左边的变量会被自动转换为Optional类型(称为隐式封包) //这点是Swift3.0的一个特点 需要特别注意!!! let urlStr: String! = "http://api.test.com/api/getcommon.php"; print("the urlStr is \(urlStr)") //输出为:the urlStr is Optional("http://api.test.com/api/getcommon.php") 不能作为urlString 去发送url请求 //强制拆包 //当String被隐式封包时 如果要作为初始化URL的String时,必须要进行强制拆包,强制拆包为 在Optional类型的String参数后加上 '!' 号 //上面的 urlStr 已经被隐式封包 此处进行强制拆包 //urlStrOptional! 和 urlStr! 可作为初始化URL的String 因为urlStrOptional! 和 urlStr!进行了强制拆包 print("the urlStrOptional is \(urlStrOptional!)") print("the urlStr is \(urlStr!)") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }}
- Swift3.0 Optional String 类型 强制拆包
- Swift4.0【Optional String 类型 强制拆包】
- Swift3之细致理解Optional(可选类型)
- Swift-可选类型(Optional)以及解包
- swift3.0 闭包
- swift3.0闭包
- Swift3.0 闭包
- swift3.0闭包
- Swift3.0 类型检查
- swift 可选类型,强制拆包,隐性拆包
- swift3.0 unexpectedly found nil while unwrapping an Optional value的解释 && Swift中Optional
- String强制类型转换问题
- swift3.0之闭包
- Swift3.0 类型转换 示例
- 10.可选类型optional(解包和绑定)
- toString() 和 强制类型转换 (String)
- toString() 和 强制类型转换 (String)
- String类型强制转换的方法
- 杭电ACM第1002题——A + B Problem II
- DiscreteScrollView
- 排序算法之希尔排序
- Java静态方法:无法从静态上下文中引入非静态方法
- day02兼容性封装包
- Swift3.0 Optional String 类型 强制拆包
- ACM习题Z-26
- 初步总结C++命名规范
- 我应该找引擎开发的岗位
- Android(4.2) Sensors 学习——G-sensor,Gyroscope驱动移植
- 01背包+记录路径
- 接口和类之间的关系
- 天翼云开放平台短信接口php类
- 信源编码作业一