Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 设置NSMutableURLRequest标头和添加标头之间的区别_Ios_Swift_Http Headers_Nsmutableurlrequest - Fatal编程技术网

Ios 设置NSMutableURLRequest标头和添加标头之间的区别

Ios 设置NSMutableURLRequest标头和添加标头之间的区别,ios,swift,http-headers,nsmutableurlrequest,Ios,Swift,Http Headers,Nsmutableurlrequest,我想知道设置头值和向NSMutableURLRequest添加头值之间的区别是什么。听起来有点明显,但举例来说,你不能每次都使用addValue吗?设置不存在的标题会引发错误吗?在请求中已存在标头时添加标头是否会覆盖现有值 范例 let request.NSMutableURLRequest(URL: NSURL(string: "someURL")!) request.addValue("application/json", forHTTPHeaderField: "Content-Type

我想知道设置头值和向NSMutableURLRequest添加头值之间的区别是什么。听起来有点明显,但举例来说,你不能每次都使用addValue吗?设置不存在的标题会引发错误吗?在请求中已存在标头时添加标头是否会覆盖现有值

范例

let request.NSMutableURLRequest(URL: NSURL(string: "someURL")!) 
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
...

我认为苹果官方文件中的讨论非常清楚:

此方法提供递增地向标头字段添加值的能力。如果以前为指定字段设置了值,则提供的值将使用适当的字段分隔符附加到现有值上。对于HTTP,分隔符是逗号

标题字段的新值。该字段的任何现有值 被新值替换为



setValue
替换<代码>附加值附加一个分隔符

哦,哇,好吧,这大大澄清了我的理解!除非将值附加到当前标题,否则我应该使用设置值?在我看来,“addValue”似乎是“AddaHeader”的另一个术语。@Danoram取决于您试图实现的目标。我觉得setValue在大多数情况下都足够了。如果我们为不存在的密钥“setValue”呢?我猜会因未知密钥异常而崩溃!不,若我们放入不存在的setValue,应用程序不会崩溃,但对请求和响应根本并没有影响。我认为setValue应该始终使用。因为当我们使用头字段时,意味着它们已经在数据库中定义了。