Итак, у меня есть опыт работы с библиотекой github, которую вы используете.
Скорее всего, вы захотите сделать этот вызов синхронно из-за некоторых проблем, которые есть в этой библиотеке (вы не можете сразу делать несколько запросов и не можете открывать несколько подключений к серверу, потому что библиотека все его SQL работает через singleton). Чтобы решить некоторые из этих проблем, я настоятельно рекомендую вам ознакомиться с SQLConnect library, которые я написал (потратив некоторое время на использование библиотеки Мартина, которую вы используете). Моя библиотека отходит от подхода singleton, и вы можете подключить столько подключений, сколько хотите.
С этим сказал ... вы можете сделать эту библиотеку (и мою тоже) выполнять синхронно.
Если вы заметили в SQLClient.h
file, объект SQLClient
указывает workerQueue
и . Мартин установил, что callbackQueue
находится в любой очереди, на которой впервые создается экземпляр singleton, а workerQueue
- это очередь, которую он задает. Тем не менее, это общедоступные свойства, которые можно настроить отлично.
Если вы действительно хотите запрос выполнить синхронно, просто установите workerQueue
и callbackQueue
работать на текущей очереди.
SQLClient.sharedInstance.workerQueue = NSOperationQueue.currentQueue()
SQLClient.sharedInstance.callbackQueue = NSOperationQueue.currentQueue()
И затем выполнить ваш запрос.
Весь код будет выполнен на том же NSOperationQueue
, и как таковой будет осуществляться синхронно.
Конечно, вы можете сделать то же самое, используя my SQLConnect library как the SQLConnection
object аналогично указывает workerQueue
и callbackQueue
, которые можно указать в любой очереди вы хотите.
все из из этого сказал, что я очень высоко ценю, что вы разрешаете операции оставаться асинхронными и придумываете какое-то другое решение любой проблемы, заставляя думать, что она должна выполняться синхронно. И даже если вы все еще думаете, что это должно быть синхронным, убедитесь, что он не блокирует поток пользовательского интерфейса.
Я подключаюсь к серверу extern microsoft sql – user3623030
Какую цель? Цель-С или Свифт? –
Какую библиотеку MSSQL вы используете? –