Для получения табличных данных без загрузки в базу данных создайте приложение «HHFWTable», в котором используются методы фреймворка:
| Имя метода | Краткое описание |
| initWithCredentials (_: host: environment: project: application: device:) | Метод выполняет инициализацию фреймворка. |
| auth (_: password:) | Метод выполняет аутентификацию пользователя по логину и паролю. |
| table (_: transactionID: tableCallParams: handler:) | Метод возвращает табличные данные ресурса без загрузки в базу данных. |
Приложение «HHFWTable» состоит из одного экрана, текстового представления «UITextView» и кнопки «UIButton»:
«Perform Table». Получение табличных данных без загрузки в базу данных.
Примечание. При загрузке приложения выполняется аутентификация, кнопка недоступна. Если аутентификация выполнена успешно, то кнопка будет доступна и в текстовом поле появится надпись «Authentication success».
Для выполнения примера нажмите кнопку «Perform Table». При нажатии на кнопку инициализируется запрос к ресурсу. Сервер мобильной платформы возвращает соответствующие табличные данные без загрузки в базу данных.

Код приложения:
import UIKit
class ViewController: UIViewController {
//MARK: - Outlets
@IBOutlet weak var resultTextView: UITextView!
@IBOutlet weak var tableRequestButton: UIButton!
//MARK: - View life cycle
override func viewDidLoad() {
super.viewDidLoad()
self.deactivateButtons()
self.initializeFramework()
self.auth {
self.activateButtons()
self.resultTextView.text = "Authentication success"
}
}
//MARK: - Actions
@IBAction func tableRequestPressed(_ sender: UIButton) {
self.tableRequest { (jsonResult) in
self.resultTextView.text = String(format: "%@", jsonResult)
}
}
//MARK: - HHFW - Framework initialization
private func initializeFramework() {
let apiVersion: String = "v1"
let host: String = "http://testmasterfmp.fsight.cloud/"
let environment: String = "Leonid_environment"
let project: String = "Leonid_project"
let application: String = "app"
let device: String = (UIDevice.current.identifierForVendor?.uuidString)!
HHFWController.sharedInstance().initWithCredentials(
apiVersion,
host: host,
environment: environment,
project: project,
application: application,
device: device
)
}
//MARK: - HHFW - Authentication
private func auth(completion: @escaping ()->()) {
let username: String = "Leonid"
let password: String = "123123"
HHFWController.sharedInstance().auth(username, password: password){ (jsonResult) in
if let jsonDict = jsonResult as? NSDictionary,
let status = jsonDict["status"] as? String, status == "ok" {
print("Auth success")
completion()
} else {
print("Auth error")
}
}
}
//MARK: - HHFW - Table request
private func tableRequest(completion: @escaping (NSDictionary)->()) {
let resourceName = "study"
let tableCallParams = TableCallParams(defaultProperty: ())
HHFWController.sharedInstance().table(resourceName, transactionID: nil, tableCallParams: tableCallParams) { (jsonResult) in
if let jsonDict = jsonResult as? NSDictionary,
let status = jsonDict["status"] as? String, status == "ok" {
print("Table request success")
completion(jsonDict)
} else {
print("Table request error")
}
}
}
//MARK: - View methods
private func deactivateButtons() {
self.tableRequestButton.isEnabled = false
}
private func activateButtons() {
self.tableRequestButton.isEnabled = true
}
}
Для получения табличных данных без загрузки в базу данных создайте приложение «HHFWTableAsync», в котором используются методы фреймворка:
| Имя метода | Краткое описание |
| initWithCredentials (_: host: environment: project: application: device:) | Метод выполняет инициализацию фреймворка |
| auth (_: password:) | Метод выполняет аутентификацию пользователя по логину и паролю |
| tableAsync (_: transactionID: tableCallParams: handler:) | Метод асинхронно запрашивает и возвращает табличные данные ресурса без загрузки в базу данных |
Приложение «HHFWTable» состоит из одного экрана, текстового представления «UITextView» и кнопки «UIButton»:
«Perform Table Async». Получение табличных данных без загрузки в базу данных.
Примечание. При загрузке приложения выполняется аутентификация, кнопка недоступна. Если аутентификация выполнена успешно, то кнопка будет доступна, и в текстовом поле появится надпись «Authentication success».
Для выполнения примера нажмите кнопку «Perform Table Async». При нажатии на кнопку инициализируется асинхронный запрос к ресурсу. Сервер мобильной платформы возвращает соответствующие табличные данные без загрузки в базу данных.

Код приложения:
import UIKit
class ViewController: UIViewController {
//MARK: - Outlets
@IBOutlet weak var resultTextView: UITextView!
@IBOutlet weak var tableRequestButton: UIButton!
//MARK: - View life cycle
override func viewDidLoad() {
super.viewDidLoad()
self.deactivateButtons()
self.initializeFramework()
self.auth {
self.activateButtons()
self.resultTextView.text = "Authentication success"
}
}
//MARK: - Actions
@IBAction func tableRequestPressed(_ sender: UIButton) {
self.tableRequest { (jsonResult) in
self.resultTextView.text = String(format: "%@", jsonResult)
}
}
//MARK: - HHFW - Framework initialization
private func initializeFramework() {
let apiVersion: String = "v1"
let host: String = "http://testmasterfmp.fsight.cloud/"
let environment: String = "DocumentationExampleEnv"
let project: String = "DocumentationExampleProj"
let application: String = "app"
let device: String = (UIDevice.current.identifierForVendor?.uuidString)!
HHFWController.sharedInstance().initWithCredentials(
apiVersion,
host: host,
environment: environment,
project: project,
application: application,
device: device
)
}
//MARK: - HHFW - Authentication
private func auth(completion: @escaping ()->()) {
let username: String = "test"
let password: String = "test123"
HHFWController.sharedInstance().auth(username, password: password){ (jsonResult) in
if let jsonDict = jsonResult as? NSDictionary,
let status = jsonDict["status"] as? String, status == "ok" {
print("Auth success")
completion()
} else {
print("Auth error")
}
}
}
//MARK: - HHFW - Table request
private func tableRequest(completion: @escaping (NSDictionary)->()) {
let resourceName = "FRUITS"
let tableCallParams = TableCallParams(defaultProperty: ())
HHFWController.sharedInstance().tableAsync(resourceName, transactionID: nil, tableCallParams: tableCallParams) { (jsonResult) in
if let jsonDict = jsonResult as? NSDictionary,
let status = jsonDict["status"] as? String, status == "ok" {
print("Table request success")
completion(jsonDict)
} else {
print("Table request error")
}
}
}
//MARK: - View methods
private func deactivateButtons() {
self.tableRequestButton.isEnabled = false
}
private func activateButtons() {
self.tableRequestButton.isEnabled = true
}
}
См. также:
Примеры использования iOS-фреймворка | Примеры работы с ресурсами