Описание тега objective-c-blocks

Блоки - это реализация Apple закрытий для C, которые также доступны для Objective-C и C++.
1 ответ

Почему я не могу установить значение свойства в качестве аргумента items блока завершения readWithCompletion?

Я только начал разрабатывать приложения для платформы iOS и использую веб-службы Azure для доступа к удаленной базе данных. Я звоню readWithCompletion: метод на столе, чтобы попытаться прочитать все данные в моей базе данных с сервера. В блоке завер…
2 ответа

Определение метода для получения блока обратного вызова

Я прочитал документацию Apple по блокам, но я не совсем уверен, как использовать их в моей ситуации. В моем приложении есть игровая модель. У этого есть метод, который создает игру двух пользователей. Из контроллера представления я вызываю метод в и…
1 ответ

Как мне создать метод target-c, который возвращает блок

-(NSMutableArray *)sortArrayByProminent:(NSArray *)arrayObject { NSArray * array = [arrayObject sortedArrayUsingComparator:^(id obj1, id obj2) { Business * objj1=obj1; Business * objj2=obj2; NSUInteger prom1=[objj1 .prominent intValue]; NSUInteger p…
02 ноя '12 в 10:44
2 ответа

Блок Objective-C не выпускается для фоновых приложений

У меня есть приложение, которое работает только в фоновом режиме (указав LSBackgroundOnly в файле info.plist). Проблема в том, что все блоки, которые я запускаю в параллельных очередях, не освобождаются. Код выполняется в среде с управлением памятью…
2 ответа

Назначение переменной внутри блока требует слабой ссылки?

Итак, у меня есть следующий код: [serviceHandler getHomeConfigurationData:^(NSDictionary *data){ if (data) { NSLog(@"The Data: %@", data); homeConfigData = data; } } failure:^(NSError *error, BaseServiceHandler *context){ homeConfigData = Nil; NSLog…
0 ответов

NSInvocation getArgument:atIndex: путаница при тестировании блоков с помощью OCMock

Я пишу юнит-тесты в свою оболочку Facebook SDK, и что-то меня запутало в NSInvocation - (void)getArgument:(void *)buffer atIndex:(NSInteger)index при попытке издеваться над FBRequest с помощью OCMock. Вот определение метода, которое я пытаюсь провер…
1 ответ

Почему этот блок ObjC не выпускает свои захваченные ссылки, когда он выпущен? Провал тестовый блок включен

Я столкнулся с проблемой, когда объект, захваченный в блоке, кажется, не освобождается, даже после того, как все ссылки на объект и блок были установлены в nil, Чтобы проиллюстрировать эту проблему, я собрал этот действительно простой модульный тест…
1 ответ

OCMock и блоки

У меня есть метод со следующей подписью, который я хочу проверить с помощью функции заглушки OCMock: - (void)signInWithEmail:(NSString *)email andWithPassword:(NSString *)password andWithBlock:(void (^)(GNCustomer *customer, NSError *error))block Ка…
15 окт '13 в 18:06
1 ответ

PromiseKit AnyPromise, а затем сбой EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000010

У меня происходит сбой в Fabric, который указывает на первую строку в Objective-C: somePromise.then(^ { // some more code }); Приложение использует PromiseKit. Почему это сбой?
20 июн '18 в 00:11
1 ответ

Трабл с блоком, iOS

Я получаю эту ошибку при попытке определить и назначить блок: int (^bl)(int) = ^(int k) { [_self c2:k]; // incompatible block pointer types initializing 'int (^)(int)' with an expression of type 'void (^)(int)' }; Это из учебника блоков: Что здесь п…
16 июл '12 в 07:05
1 ответ

Могут ли блоки использоваться в качестве замены для делегатов?

Я хочу написать собственный метод делегата для получения события в одном из моих контроллеров представления от другого контроллера представления. Должен ли я использовать блоки здесь вместо делегатов. Какой из них предпочтительнее? @protocol MyClass…
04 окт '15 в 11:47
1 ответ

Предотвращение неожиданного освобождения в асинхронных блоках

Скажем, у меня есть класс: @interface MyClass : NSObject @property(strong, nonatomic, readwrite) Widget* widget; -(void)handleData:(NSData*)data; -(void)foo; @end @implementation MyClass -(void)handleData:(NSData*)data { //...do a bunch of handleDat…
28 фев '14 в 16:46
1 ответ

Как я могу использовать блок, чтобы изменить контекст выполнения в iOS?

Я использую панель поиска для поиска текста, используя следующий код, но во время выполнения он застрял в моем пользовательском интерфейсе, так как я могу выполнить этот код, используя блокировать любое предложение? Мой код: for(NSMutableDictionary …
2 ответа

Возможно передать [self anyFunction] в блоках без __weak объекта (iOS 5 + ARC)

Можно ли передать [self anyFunction] в блоки без __weak-объекта от self? В качестве примера это допустимый код из System Framework: [UIView animateWithDuration:0.8 animations:^{ //Do animationStuff } completion:^(BOOL finished) { [self anyFunction];…
3 ответа

Сохранить ссылку на объект локальной переменной в ARC

Я создал класс под ARC с некоторыми методами, которые принимают блоки. Проблема в том, что приложение продолжает падать, и я думаю, что причина сбоя в том, что объект освобождается ARC. Мой вопрос, как я могу это исправить, то есть как я могу сохран…
1 ответ

Можно ли переопределить свойство completeBlock NSOperation с различными типами параметров?

В книге "Основные данные" (2-е издание) Маркуса Зарры приведен пример, в котором NSOperation подкласс он отменяет completionBlock имущество: @property (copy) void (^completionBlock)(void) NS_AVAILABLE(10_6, 4_0); с typedef void (^ExportCompletionBl…
1 ответ

Блоки, стеки и кучи

Используя Xcode 4.2 и ARC, я написал следующий код, прежде чем понял, как нужно копировать блоки из стека в кучу. -(void) downloadWithBlock:(void (^)(void))callbackBlock; { // start the data download in the background... NSOperation *backgroundOpera…
14 дек '11 в 12:21
1 ответ

Objective C обратные вызовы с блоками

Я рассмотрел различные ответы на SO для этого, но не могу понять, как все это на самом деле работает. У меня есть GameEngine, который содержит сенсорные элементы. Я хочу, чтобы при касании элемента он запускал событие "Я был тронут", которое GameEng…
1 ответ

iOS 5 блокирует сбой только с Release Build

Я использовал блоки и ARC, и обнаружил, что в некоторых случаях iOS вылетает только в Release build. Это был неправильный способ написания кода, вот так. -(IBAction)clickedButtonA:(UIBarButtonItem*)sender event:(UIEvent*)event { NSMutableArray *arrR…
1 ответ

Эффективность блока кода Objective-C для брутфорсера

Что касается использования процессора и памяти, насколько эффективны блоки кодирования в стиле C в Objective-C? Я создаю библиотеку брутфорсинга для Objective-C, и мне нужно максимально ее оптимизировать. Используемый блок кода вызывается на каждой …
03 дек '12 в 16:15