Другой пример:
func getJason(url: NSURL, completionHandler: (String?, NSError?) -> Void ) -> NSURLSessionTask {
var finalData: String!
let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in
if error != nil{
completionHandler(nil, error)
return
}
else{
if let urlContent = data{
do{
let jsonData = try NSJSONSerialization.JSONObjectWithData(urlContent, options: NSJSONReadingOptions.MutableContainers)
if let ip = jsonData["ip"]{
finalData = ip as? String
completionHandler(finalData, nil)
return
}
}catch{
print("EMPTY")
}
}
}
}
task.resume()
return task
}
Затем я назвал его в viewDidLoad
getJason(url) { (ipAddress, error) -> Void in
if error != nil{
print(error)
}
else{
if let ip = ipAddress{ //To get rid of optional
self.ipLabelDisplay.text = "Your Ip Address is: \(ip)"
}
}
}
Мы используем StringTemplateLoader для загрузки нашего tempates, который мы получили от дб (как предложенный Dan Vinton)
, Вот пример:
StringTemplateLoader stringLoader = new StringTemplateLoader();
String firstTemplate = "firstTemplate";
stringLoader.putTemplate(firstTemplate, freemarkerTemplate);
// It's possible to add more than one template (they might include each other)
// String secondTemplate = "<#include \"greetTemplate\"><@greet/> World!";
// stringLoader.putTemplate("greetTemplate", secondTemplate);
Configuration cfg = new Configuration();
cfg.setTemplateLoader(stringLoader);
Template template = cfg.getTemplate(firstTemplate);
Редактирование Вы не должны загружать все шаблоны при запуске. Каждый раз, когда мы получим доступ к шаблону, мы выберем его от DB и загрузим его через StringLoader, и путем вызова template.process () мы генерируем (в нашем случае) вывод XML.
Несколько путей:
Создают новую реализацию TemplateLoader, чтобы загрузить шаблоны из базы данных и передать его Вашему Конфигурация экземпляр с помощью setTemplateLoader()
до загрузки любых шаблонов.
Использование StringTemplateLoader, который Вы настраиваете от своей базы данных, когда Ваше приложение запускается. Добавьте его к конфигурации как выше.
Редактирование в свете редактирования корреспондента, Ваша собственная реализация TemplateLoader похожа на способ пойти. Проверьте Javadoc здесь , это - простой небольшой интерфейс только с четырьмя методами, и его поведение хорошо документируется.