0
出于某种原因,我无法从快捷键所需的字典中的键中获取正确的值。这在目标c中起作用。无法从allHeaderFields字典中获取值
var newRequest: NSMutableURLRequest = NSMutableURLRequest(URL: navigationAction.request.URL!)
newRequest.HTTPMethod = "HEAD"
var response: NSURLResponse?
var filename: AnyObject?
var filetype: AnyObject?
NSURLConnection.sendSynchronousRequest(newRequest, returningResponse: &response, error: nil)
if let httpResponse = response as? NSHTTPURLResponse {
let allHeaders = httpResponse.allHeaderFields
filename = allHeaders["sfn-Document-Filename"]
let typeString: AnyObject? = allHeaders["Content-Type"]
let typeArray: Array = typeString!.componentsSeparatedByString("/")
filetype = typeArray[1]
}
本字典对象看起来像这样allHeaders [NSObject : AnyObject] 6 key/value pairs
。
这里的目标C目前仍然可以工作。
NSMutableURLRequest *newRequest = [NSMutableURLRequest requestWithURL:[request URL]];
[newRequest setHTTPMethod:@"HEAD"];
NSHTTPURLResponse *response;
[NSURLConnection sendSynchronousRequest:newRequest returningResponse:&response error: NULL];
if ([response respondsToSelector:@selector(allHeaderFields)]) {
NSDictionary *dictionary = [response allHeaderFields];
filename = [[response allHeaderFields] objectForKey:@"sfn-Document-Filename"];
NSString *typeString = [dictionary objectForKey:@"Content-Type"];
NSArray *typeArray = [typeString componentsSeparatedByString:@"/"];
filetype = [typeArray objectAtIndex:1];
}
它并不需要做的方式与obj-C一样,它只是这个工作,它似乎是一个良好的开端。
我得到的文件名的值是filename = (AnyObject?) Some
我试图将其更改为:
var filename: String?
filename = allHeaders["sfn-Document-Filename"] as? String
但现在我得到一个零字符串和Thread 1: EXC_BAD_ACCESS (code=1, address=0x20)
得到任何错误? –
“我无法从字典中获得正确的值”:这是否意味着您得到错误的值?或者根本没有价值? – Moritz
@EricD。我得到'filename =(AnyObject?)一些' –