Другой пример:
class func getExchangeRate(#baseCurrency: String, foreignCurrency:String, completion: ((result:Double?) -> Void)!){
let baseURL = kAPIEndPoint
let query = String(baseCurrency)+"_"+String(foreignCurrency)
var finalExchangeRate = 0.0
if let url = NSURL(string: baseURL + query) {
NSURLSession.sharedSession().dataTaskWithURL(url) { data, response, error in
if ((data) != nil) {
let jsonDictionary:NSDictionary = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: nil) as NSDictionary
if let results = jsonDictionary["results"] as? NSDictionary{
if let queryResults = results[query] as? NSDictionary{
if let exchangeRate = queryResults["val"] as? Double{
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
dispatch_async(dispatch_get_main_queue()) {
completion(result: exchangeRate)
}
}
}
}
}
}
else {
completion(result: nil)
}
}.resume()
}
}
Вызов:
Currency.getExchangeRate(baseCurrency: "USD", foreignCurrency: "EUR") { (result) -> Void in
if let exchangeValue = result {
print(exchangeValue)
}
}
В MSDN есть описание назначения файла global.asax.
По сути, global.asax позволяет вам писать код, который запускается в ответ на события "системного уровня", такие как запуск приложения, завершение сессии, возникновение ошибки приложения, без необходимости пытаться впихнуть этот код на каждую страницу вашего сайта.
Вы можете использовать его, выбрав Add > New Item > Global Application Class в Visual Studio. После добавления файла вы можете добавить код в любое из перечисленных событий (которые создаются по умолчанию, по крайней мере в Visual Studio 2008):
Есть и другие события, к которым вы можете подключиться, например, "LogRequest".
Файл Global.asax, также известный как файл приложения ASP.NET, является необязательный файл, который содержит код для реагирования на события на уровне приложения и события на уровне приложения и сеанса, вызванные ASP.NET или модулями HTTP.
Global.asax - это файл приложения asp.net.
Это дополнительный файл, который обрабатывает события, вызванные ASP.NET или HttpModules. В основном используется для событий запуска/завершения приложения и сессии, а также для глобальной обработки ошибок.
При использовании он должен находиться в корне сайта.
Global.asax можно использовать для обработки событий, возникающих в приложении. Эта ссылка дает хорошее объяснение: http://aspalliance.com/1114