Результаты поиска по запросу "objective-c-blocks"
блок, да. Блоки являются обычными объектами Objective-C.
ел бы создать метод, который принимает блок, сохраняет его в элементе, запускает асинхронную задачу и затем вызывает блок, когда асинхронный вызов выполняет обратный вызов завершения. Должен ли я сохранить блок? Управляется ли память блоков так ...
Это просто совпадение; стек не очищается при разрушении области цикла for (). Массив не содержит блоков, он содержит ссылки на, теперь уже не существующий, блочный слот в стеке в цикле for (). Если бы вы скомпилировали это с оптимизацией (или использовали функцию чистого стека GC), вы бы, вероятно, увидели другое [неопределенное] поведение.
ю, что блоки создаются в стеке. Однако, поскольку у меня недостаточно знаний о стеке и локальных переменных, я не могу понять, почему я должен переместить блок в кучу, чтобы получить ожидаемый результат. Интуитивно я чувствую, что блок кода блока ...
продолжить это обсуждение в чате
тироватьЯ прочитал несколько статей о блоках и быстром перечислении и GCD и тому подобное. @Bbum, который написал много статей на тему GCD и блоков, говорит, что методы перечисления блоков всегда бывают быстрее или быстрее, чем ...
Я отредактировал ответ Казуки, чтобы объяснить это.
из шаблонов, представленных в докладе WWDC 2010 «Блоки и Grand Central Dispatch», было использование вложенных вызовов dispatch_async для выполнения трудоемких задач в фоновом потоке, а затем обновление пользовательского интерфейса в главном ...
также написал об этом. (Если bbum приходит сюда и говорит, что я идиот по этому поводу, то послушай его, но я думаю, что я прямо здесь.)
я есть код, который по сути сводится к этому: -(void)doSomethingWithBlock:(BlockTypedef)block { [Foo doSomethingElseWithBlock:^() { block(); }]; }Foo doSomethingElseWithBlock: звонкиBlock_copy а такжеBlock_release на блоке, который он получает. ...
Леви прав
могу заставить блок выполняться синхронно или заставить функцию ждать обработчик перед оператором return, чтобы данные могли быть переданы обратно из блока? -(id)performRequest:(id)args { __block NSData *data = nil; ...
Как использовать dispatch_queue_set_specific () и dispatch_get_specific ()
Мне трудно найти хорошие примеры того, как использовать эти функции. static void * kQueue1Key = "key1"; static void * kQueue2Key = "key2"; dispatch_queue_t queue1 = dispatch_queue_create("com.company.queue1", DISPATCH_QUEUE_SERIAL); ...
Второе исправление заключается в использовании __block
у установить указатель NSError изнутри блока в проекте, используя автоматический подсчет ссылок. Далее следует упрощенная версия моего кода: - (BOOL)frobnicateReturningError:(NSError **)error { NSArray *items = [NSArray arrayWithObjects:@"One", ...
Как вернуть переменную из блока внутри метода?
Скажем, у меня есть этот метод, который с учетом URL возвращает UIImage: - (void)getUIImageFromURL:(NSURL *)URL { NSURLRequest *request = [NSURLRequest requestWithURL:URL]; AFHTTPRequestOperation *imageOperation = [[AFHTTPRequestOperation alloc] ...
Это означает, что переменная, к которой относится префикс, доступна для использования в блоке.
менно делает__block Ключевое слово в Objective-C означает? Я знаю, что это позволяет вам изменять переменные внутри блоков, но я хотел бы знать ... Что именно он говорит компилятору?Это делает что-нибудь еще?Если это все, что нужно, то зачем это ...