2015-04-23 13 views
4

我想知道设置一个头值和添加一个头值到一个NSMutableURLRequest之间的区别是什么。听起来很明显,但是,例如,你不能每次都使用addValue吗?将设置不存在的标题会抛出错误?当请求中已经存在的头部会覆盖现有的值时会添加头部吗?设置一个NSMutableURLRequest头和添加一个差异

例如

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

回答

7

我想在苹果的官方文档的讨论是很清楚的:

addValue

这种方法提供了增加值,以增量头字段的能力。如果先前为指定字段设置了值,则使用相应的字段分隔符将提供的值附加到到现有值。在HTTP的情况下,分隔符逗号

setValue

用于报头字段中的新。该字段 的任何现有值都是被新值替换为


setValue内容替换。 addValue附加分隔符

+0

哦,哇,好吧,这已经很好地阐明了我的理解!除非将值附加到当前标题,否则我应该使用设置值?在我看来,'addValue'看起来像是'添加标题'的另一个术语。 – Danoram

+1

@Danoram取决于你要完成的任务。我觉得在大多数情况下setValue已经足够了。 – skyline75489

+0

如果我们为“非现有密钥”设置了“setValue”会怎么样?未知的关键异常会崩溃我猜! – byJeevan