Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XCODE pass a method as parameter

I wan't to pass a method as a parameter to another method, so it know the method to call when ends running. Is it possible?

[self bringJSON:(NSString *)_passedValua:(NSObject *)anotherMethod];
like image 638
88fsantos Avatar asked Dec 06 '22 14:12

88fsantos


1 Answers

As @Daniel mentioned in comments you can use selector for that. Basic scheme will be the following:

// Method declaration - method accept selector as parameter
- (void) bringJSON:(NSString *)_passedValua toMethod:(SEL)anotherMethod];

// Method call - create selector from method name (mind the colon in selector - it is required if your method takes 1 parameter) 
[self bringJSON:jsonString toMethod:@selector(methodName:)];

// Implementation
- (void) bringJSON:(NSString *)_passedValua toMethod:(SEL)anotherMethod]{
   ...
   if ([target respondsToSelector:anotherMethod])
      [target performSelector:anotherMethod withObject:_passedValua];
} 
like image 78
Vladimir Avatar answered Dec 11 '22 11:12

Vladimir