objective c - Problems passing parameters to a dynamic method (object_addMethod) -


i'm attempting use resolveclassmethod: , object_addmethod add new method. things seem working fine in general, parameter doesn't seem coming through.

when pass in parameter, such as:

uifont *font1 = [uifont academyengravedletplainofsize:12.0f]; 

i 0.0 instead of 12.0 font size in dynamic method. here's output sample below:

createnamedfontimp(uifont, academyengravedletplainofsize:, 0.000000) 

what doing wrong here?

@interface uifont (ntnamedfonts)  +(uifont *)academyengravedletplainofsize:(int)size ns_available_ios(6_0);  @end  @implementation uifont (ntnamedfonts)  nsstring *targetselectorname = @"academyengravedletplainofsize:"; nsstring *targetfontname = @"academyengravedletplain";  +(bool)resolveclassmethod:(sel)sel {     nsstring *selectorname = nsstringfromselector(sel);      if ( [selectorname isequaltostring:targetselectorname] )     {         class metaclass = object_getclass(self);         class_addmethod(metaclass, sel, (imp)createnamedfontimp, "@#:f");         return yes;     }     else         return [super resolveclassmethod:sel]; }  static id createnamedfontimp(class class, sel _cmd, cgfloat size) {     nslog(@"createnamedfontimp(%@, %@, %f)", nsstringfromclass(class), nsstringfromselector(_cmd), size);      uifont *font = [class fontwithname:targetfontname size:size];      return font; }  @end 

you pass integer float. please show method declaration.

btw: what's reason code? category seems better approach.

btw 2: if remember correctly, have use double.


Comments

Popular posts from this blog

Android layout hidden on keyboard show -

google app engine - 403 Forbidden POST - Flask WTForms -

c - Why would PK11_GenerateRandom() return an error -8023? -