Articles of objective c bloques

¿Qué significa el símbolo ^ en el objective-C?

Posible duplicado: Caret en el objective C ¿Qué significa el símbolo ^ en el objective-C? código: GreeRequestServicePopup* requestPopup = [GreeRequestServicePopup popup]; requestPopup.parameters = parameters; requestPopup.willLaunchBlock = ^(id aSender) { [[NSNotificationCenter defaultCenter] postNotificationName:@"request_service_popup_will_launch_block" object:nil]; }; requestPopup.didLaunchBlock = ^(id aSender) { [[NSNotificationCenter defaultCenter] postNotificationName:@"request_service_popup_did_launch_block" object:nil]; }; requestPopup.willDismissBlock = ^(id aSender) { [[NSNotificationCenter defaultCenter] postNotificationName:@"request_service_popup_will_dismiss_block" object:nil]; }; requestPopup.didDismissBlock […]

¿Pueden los bloques / methods ser intercambiables?

Vengo de C # / Java / JS a objectiveC y estoy solo un par de días, así que ponte fácil conmigo. … así que tengo un método que toma un bloque como parámetro: -(void)subToPub: (NSString*)publisherName channelId: (NSString*)channelId callback: (void(^)(NSDictionary*))cb que usualmente usaría de la siguiente manera: [myObj subToPub:@"someId" channelId:@"someOtherId" callback:[(^(NSDictionary* msg){ NSLog(@"cb2: %@",msg); }) […]

Método recursivo con bloque y detener arguments

He escrito una categoría en UIView que me permite recorrer la jerarquía de vistas: UIView + Capture.h typedef void(^MSViewInspectionBlock)(UIView *view, BOOL *stop); @interface UIView (Capture) – (void)inspectViewHeirarchy:(MSViewInspectionBlock)block; @end UIView + Capture.m @implementation UIView (Capture) – (void)inspectViewHeirarchy:(MSViewInspectionBlock)block { BOOL stop = NO; [self inspectViewHeirarchy:block stop:stop]; } #pragma – Private – (void)inspectViewHeirarchy:(MSViewInspectionBlock)block stop:(BOOL)stop { if (!block || […]

La renegociación de un puntero débil no está permitida dentro del bloque.

Los documentos de Apple dicen que puedo evitar un ciclo de reference fuerte al capturar una reference débil a mí mismo, así: – (void)configureBlock { XYZBlockKeeper * __weak weakSelf = self; self.block = ^{ [weakSelf doSomething]; // capture the weak reference // to avoid the reference cycle } } Sin embargo, cuando escribo este código, […]

Necesita ayuda con respecto a la comprensión de typedefs y bloques

typedef void (^RequestProductsCompletionHandler)(BOOL success, NSArray * products); Tengo dificultades para entender qué está haciendo esta línea de código en el file .h. Por favor explique en detalle typedef vacío (sé qué hace el vacío, pero ¿cuál es el propósito aquí?). (^ RequestProductsCompletionHandler) (éxito BOOL, productos NSArray *); Como llamarlo

Bloque de finalización UIPageViewController no llamado

Cuando llamo – (void)setViewControllers:(NSArray *)viewControllers direction:(UIPageViewControllerNavigationDirection)direction animated:(BOOL)animated completion:(void (^)(BOOL finished))completion; en el delegate UIPageViewController – (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed; Veo que no se llama al bloque de finalización. Pero cuando invoco este método fuera del método de delegate , se llama al bloque de finalización. ¿Configuro mal? ¿Podrías darme una pista? ¡Gracias!

iOS: sin rastreo de stack al llamar a dispatch_async

He creado un código de ejemplo para demostrar mi problema. – (void) test { void (^handler)(void) = ^ { NSArray *test = [NSArray array]; [test objectAtIndex: 5]; }; handler = [handler copy]; dispatch_async(dispatch_get_main_queue(), handler); } Cuando llamo al método de testing no obtengo un rastro de stack. El depurador simplemente se detiene en main.m y […]

Cómo animar UIImageview exactamente páginas de libros

He pasado varias publicaciones para animar UIImageview como páginas de libros, pero no encontré nada útil. En realidad, quiero que la animation en UIImageView tenga el mismo efecto que tenemos mientras UIImageView las páginas de los libros. He utilizado el siguiente código para convertir UIImageview : [UIView transitionWithView:self.greetingImgView duration:1.0f options:UIViewAnimationOptionTransitionCurlUp Pero no puedo get la […]

Los bloques en línea iOS están bien, pero los bloques declarados como variables causan problemas de memory

Tengo un set de código que se parece a esto: if(self.property == A) { [self.infoManager getThingA:^(NSString *thing, NSError *error) { self.textView.text = thing; }]; } else if(self.property == B) { [self.infoManager getThingB:^(NSString *thing, NSError *error) { self.textView.text = thing; }]; } Básicamente, en ambas instancias, solo obtienen una cadena para publicar en un TextView. La […]

iOS: almacenamiento y activación de un bloque de callback

Estoy tratando de averiguar si hay una forma estándar de almacenar un bloque de callback y hacer que se ejecute más tarde sin el uso de almacenar el bloque en una propiedad o dictionary. Imagine el siguiente escenario: Tengo una class, digamos MyApiClient y tiene un método llamado getListOfBooksWithCompletionHandler:(void (^))completion , donde se llama al […]