Вопросы по теме 'objective-c-blocks'

Кодирование блока Objective-c?
Можно ли закодировать блок Objective-C с помощью NSKeyedArchiver ? Я не думаю, что объект Block соответствует NSCoding , поэтому [coder encodeObject:block forKey:@"block"] не работает? Есть идеи?
2382 просмотров

Как написать встроенные блоки Objective-C?
Я пытаюсь реализовать бинарный поиск с использованием блоков target-c. Я использую функцию indexOfObject:inSortedRange:options:usingComparator: . Вот пример. // A pile of data. NSUInteger amount = 900000; // A number to search for. NSNumber*...
9793 просмотров

Счетчик повторов для блочной анимации UIView
Я просмотрел методы блочной анимации и заметил, что для [UIView setAnimationRepeatCount:] нет эквивалентного параметра или параметра. Какой самый простой способ повторить анимацию фиксированное количество раз? Вы, например, соединяете их в...
7166 просмотров

Настройка делегата с помощью блоков в iPhone
На контроллере представления у меня есть несколько текстовых полей, которые используют один и тот же делегат. Теперь в делегате код становится действительно уродливым, так как мне приходится различать все текстовые поля (группа if/else-if или...
1812 просмотров
schedule 09.03.2023

iOS: несовместимые типы указателей блоков
Этот код: [UIView animateWithDuration:0.25f animations:^() { self.view.alpha = 1.0f; }]; генерирует эту ошибку времени компиляции: Несовместимые типы указателей блоков, инициализирующие 'void (^)()', ожидаемые 'void (^)(void)'...
3160 просмотров
schedule 16.05.2023

iPhone: использование dispatch_after для имитации NSTimer
Не очень разбираюсь в блоках. Как бы вы подражали повторяющемуся NSTimer с dispatch_after() ? Моя проблема в том, что я хочу «приостановить» таймер, когда приложение переходит в фоновый режим, но подкласс NSTimer , похоже, не работает. Я...
9118 просмотров

Синтаксис/форматирование при вложении блоков target-c
Я складываю блоки, и это выглядит УЖАСНО. Есть ли способ написать это менее уродливо? В основном ищу предложения по синтаксису, а не по структуре, но я соглашусь и с тем, и с другим. Мой метод блочной фабрики, -(NSImage *(^)(CGFloat size,...
879 просмотров

Как использовать NSComparator?
Я хотел бы знать, возможен ли приведенный ниже вопрос с использованием NSComparator или нет? У меня есть два массива; оба содержат модели данных. У меня есть свойство с именем rank в модели данных. Теперь я хочу сравнить оба массива и узнать,...
15454 просмотров

Как код внутри блока Objective-C может ссылаться на сам объект блока?
self - это просто захваченная переменная внутри блока и не ссылается на сам блок, так как же блок ссылаться на себя без явной захваченной переменной для этой цели?
3721 просмотров
schedule 08.03.2024

Блоки и потокобезопасность ViewController
Я рассматривал пример кода Game Center, GKTapper , и один раздел, где разработчик комментирует свою реализацию, не имеет для меня особого смысла. Код вставлен ниже. Чего я не понимаю, так это почему отправка блока, который изменяет контроллер...
1839 просмотров

dispatch_sync против dispatch_async в основной очереди
Потерпите меня, это займет некоторое объяснение. У меня есть функция, похожая на приведенную ниже. Контекст: «aProject» — это объект Core Data с именем LPProject с массивом с именем «memberFiles», который содержит экземпляры другого объекта Core...
56025 просмотров

Изменение изменяемого объекта в обработчике завершения
У меня есть вопрос о безопасности потоков в следующем примере кода от Apple (из руководства по программированию GameKit) Это для загрузки достижений из игрового центра и локального сохранения: Шаг 1) Добавьте в свой класс изменяемое свойство...
1124 просмотров

Синтаксис свойства Objective-C блочного типа (без определения типа)
Синтаксис объявления свойства, относящегося к блоку, следующий: typedef void (^voidBlock)(); @property (nonatomic, copy) voidBlock callback; ... @synthesize callback; Как это можно сделать без typedef?
2396 просмотров

вернуть указатель на блок
У меня есть переменная статического блока внутри класса. Как я могу объявить свойство или селектор экземпляра для возврата или отправки этого блока вызывающей стороне? Это мой статический блок: static NSResultComparison(^myBlock)(id obj1, id...
1270 просмотров
schedule 22.04.2022

Как я могу получить возвращаемое значение из блока завершения?
Можно ли запустить блок завершения в основном потоке? Например, у меня есть один метод, который возвращает значение: - (int)test { /* here one method is called with completion block with return type void */ [obj...
14839 просмотров

NSNotification, наблюдаемый выпущенными объектами
См. обновление ниже... Хотя изначально это казалось проблемой анимации, оказалось, что проблема связана с уведомлениями. Осторожно: NSNotification будет наблюдаться даже объектами, которые вы отбросили. Обязательно removeObserver: во избежание...
318 просмотров

Синхронизация блока внутри блока?
Я играю с блоками в Objective-C, пытаясь придумать многоразовый механизм, который будет принимать произвольный блок кода и объект блокировки, а затем выполнять блок кода в новом потоке, синхронизированном с предоставленной блокировкой. Идея состоит в...
1365 просмотров

Ссылка на объект NSOperation в его собственном блоке завершения с помощью ARC
У меня возникли трудности с преобразованием некоторого кода NSOperation в ARC. В моем объекте операции используется блок завершения, который, в свою очередь, содержит блок GCD, обновляющий пользовательский интерфейс в основном потоке. Поскольку я...
5793 просмотров

Блочная версия PerformSelectorOnMainThread:withObject:waitUntilDone:
Есть ли способ, которым я могу выполнить блок, а не селектор, соответствующий этому и подобным методам? У меня есть наблюдатели, которые могут получать события, не сгенерированные в основном потоке. Я хочу, чтобы действие выполнялось в основном...
2897 просмотров

Блоки Objective-C - сохраняет ли блок объект, на который он ссылается?
Если я использую блок при выполнении асинхронной операции, и блок ссылается на объекты и свойства контроллера представления, сохраняет ли блок их и, таким образом, не освобождает ли контроллер представления, если пользователь покидает контроллер...
4935 просмотров
schedule 29.07.2023