Skip to main content

working with blocks and function which takes block as a parameter in objective c

how to create a block in objective c

define a block in .h file 

/*here i created a block 

addPhysicsBody is the name of block

^ without is block can’t be completed 

so block is defined ^addPhysicsBody


typedef void (^addPhysicsBody)(CGPoint);

where void is return type and CGpoint is parameter
where bolded part is a parameter taken by block

2)  step 2

@property (copy) addPhysicsBody clickBlock;


add block as a property and please remember that this property is copy 
 because a block needs to be copied to keep track of its captured state outside of the original scope by apple 




define a function in .h file that takes block as a parameter this is necessary while creating block with function 

- (void)getPhysicsBody:(void (^)(CGPoint))finishBlock;
where above bolded part is block with its parameter 





- (void)getPhysicsBodyAtScene:(void (^)(CGPoint))finishBlock{
  
    //block passed to self.clickBlock property
    self.clickBlock=finishBlock;

  
}


4)step 4

 pass block

pass parameter to block  self.clickBlock

  self.clickBlock(location);

note use above syntax where you want to fire the block


5)
capture block

 [self getPhysicsBodyAtScene:^(CGPoint points) {
        //
        NSLog(@"%f",points.x);

    }];

Comments

Popular posts from this blog

Better Memory management with PixiJS or How to manage cpu and cpu memory in PixiJS.

PixiJS is my favorite framework when i am looking for a web games specially for mobile or desktop  PixiJS is fast blazing fast and you can get a decent FPS even on older device.   so here is my optimization techniques for PixiJs 1. manage your sprites in a better way use spritesheet to reduce the draw calls create big sprite sheet which contain multiple sprites can be draw in gpu with a single draw call. use TexturePacker  https://www.codeandweb.com/texturepacker  best tool when its comes to spritesheet 2. for floating point calculation round off calculation for example let  speed = 0.75 ; let  position = 100 ; console . log ( Math . round ( speed * position )) 3. don't create very big canvas when u need a big canvas size game just try to create a small canvas and translate it. 4. its very important one managing TextureCache in memory you can get all TextureCache list by using  Object.entries(PIXI.utils.TextureCache); so even you use ap...

adding particles Effect in pixijs using https://pixijs.io/pixi-particles-editor/

adding particle in pixijs is very easy using the below tool more information can be found below https://github.com/pixijs/pixi-particles https://pixijs.io/pixi-particles-editor/ required packages  /// < reference path = "node_modules/pixi-particles/ambient.d.ts" /> import 'pixi-particles' code of particle delcare a     global variable   private emitter ?: Emitter ; const img = PIXI . Texture . from ( "./assets/images/particle.png" ); this . emitter = new Emitter ( this ,[ img ],{ "alpha" : { "start" : 0.62 , "end" : 0.39 }, "scale" : { "start" : 0.1 , "end" : 0.9 , "minimumScaleMultiplier" : 1.25 }, "color" : { "start" : "#ffff8f" , "end" : ...