Мне нравится добавлять функции к jQuery, таким образом, эта функция помогла бы:
jQuery.fn.center = function () {
this.css("position","absolute");
this.css("top", Math.max(0, (($(window).height() - $(this).outerHeight()) / 2) +
$(window).scrollTop()) + "px");
this.css("left", Math.max(0, (($(window).width() - $(this).outerWidth()) / 2) +
$(window).scrollLeft()) + "px");
return this;
}
Теперь мы можем просто записать:
$(element).center();
Демонстрация: Скрипка (с добавленным параметром)
Судя по всему, NSOperationQueue построен на GCD начиная с iOS 4; документы просто не были обновлены. Проверьте эту публикацию сотрудника Apple здесь: https://devforums.apple.com/message/352770 (Вам может потребоваться создать учетную запись). Итак, вы должны следовать совету Майка Абдуллы и использовать самый простой API для поставленной задачи. dispatch_async - это более низкий уровень, как правило, типа C (но не ограничиваясь этим), который подходит для одноразовых и последовательных сделок типа (запустить этот блок в этой очереди, FTW). NSOperationQueues - это вещи более высокого уровня, Objective-C, и они хороши, если вы добавляете много операций в различных точках своего кода и / или вам необходимо управлять параллелизмом, приоритетами и зависимостями. По крайней мере, так я их использую.