foundation - NSURLRequest isEqual:受 allHTTPHeaderFields 影响
问题描述
我比较了两个 NSURLRequest 对象,它们的 URL 和标头相同,但isEqual:
返回NO
,所以调试:
当我po [taskRequest isEqual:request]
的结果是NO
,po request.allHTTPHeaderFields
检查是否相等,那么po [taskRequest isEqual:request]
结果是YES
️</p>
我发现如果使用addValue:forHTTPHeaderField:
而不是setValue:forHTTPHeaderField:
,它总是返回YES
我尝试在操场Xcode 版本 10.2 (10E125)中验证:
let request1 = NSMutableURLRequest(url: URL(string: "https://api.abc.com")!)
let request2 = NSMutableURLRequest(url: URL(string: "https://api.abc.com")!)
request1.setValue("1", forHTTPHeaderField: "1")
request2.setValue("1", forHTTPHeaderField: "1")
request1 == request2 // true
request2.allHTTPHeaderFields // ["1": "1"]
request1 == request2 // false
我希望 isEqual: 无论我是否使用了该allHTTPHeaderFields
方法,结果总是正确的