Upvote:1
Aprove answer
NSMutableArray *returnValues = [NSMutableArray array];
[_services enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
id returnValue = [NSNull null];
if ([obj respondsToSelector:selector]) {
[anInvocation invokeWithTarget:obj];
const char *returnType = anInvocation.methodSignature.methodReturnType;
if( !strcmp(returnType, @encode(void)) ){
//If the return value is `void`, just set returnValue = [NSNull null]
} else if( !strcmp(returnType, @encode(id)) ){
// if the return type is derived data types(`id`)
[anInvocation getReturnValue:&returnValue];
}else{
//if the return value is basicdata type
NSUInteger length = [anInvocation.methodSignature methodReturnLength];
void *buffer = (void *)malloc(length);
[anInvocation getReturnValue:buffer];
if( !strcmp(returnType, @encode(BOOL)) ) {
returnValue = [NSNumber numberWithBool:*((BOOL*)buffer)];
} else if( !strcmp(returnType, @encode(NSInteger)) ){
returnValue = [NSNumber numberWithInteger:*((NSInteger*)buffer)];
}
returnValue = [NSValue valueWithBytes:buffer objCType:returnType];
}
}
// If the `obj` can not responds to selector, or the return value is void(nil), we set the `returnValue = [NSNull null]`
[returnValues addObject:returnValue];
}]
Upvote:0
for (NSObject *obj in dispatchArray) {
[obj performSelector:@selector(test:) withObject:argument1];
}
Credit Goes to: stackoverflow.com
Related question with same questions but different answers
- I HAVE A CLASS I WANT SOME METHOD TRANSFER TO AN ARRAY'S OBJECT IN IOS
- RECEIVE ANSWER FROM A DELEGATE METHOD ON MAIN THREAD IN IOS
- WILL AN NSMANAGEDOBJECT EVER TURN INTO A FAULT WHILE I HAVE A STRONG REFERENCE TO IT? IN IOS
- CHECK FOR ID CLASS TYPE WITHOUT CODE DUPLICATION IN IOS
- DATASOURCE METHODS NOT BEING CALLED PROPERLY WHEN IMPLEMENTED IN CUSTOM UICOLLECTIONVIEW CLASS IN IOS
- I HAVE IMAGES IN DIRECTORY. HAVE TO GET THAT IMAGE AND CONVERT INTO BASE64 STRING? IN IOS
- 'SELF' USED BEFORE SELF.INIT CALL ERROR WHILE USING NSCODING ON A CUSTOM CLASS IN IOS
- IOS STORYBOARD WHY DO SOME ELEMENTS NOT APPEAR IN SIMULATOR? IN IOS
- HOW TO REQUEST DATAS TO SERVER IN POST METHOD IOS? IN IOS
- CUSTOM CLASS FUNCTION NOT WORKING ON SCENE IN IOS
- INITIALIZE PROTOCOL IN A CLASS IN IOS
- IOS DECLARE BOOST CLASS AS CLASS VARIABLE IN IOS
- SWIFT : HOW TO USE METHOD IN FRAMEWORK IN VIEWCONTROLLER? IN IOS
- IOS UICOLLECTIONVIEW CELL WITH DIFFERENT INSTANCE OF CELL CLASS IN IOS
- WHAT CACHE METHOD SHOULD WE USE IOS APP IN IOS
- POST METHOD HOW TO SEND ONLY REQUIRED PARAMETERS OBJECTIVE-C IN IOS
- HOW TO HAVE A WORKING SPLITVIEWCONTROLLER WITHIN A TABBARCONTROLLER IN IOS
- UITABLEVIEWDATASOURCE METHOD CAN NOT BE CALLED, EVEN CURSOR DOESN'T GET INSIDE THOSE METHODS ON DEBUGGING IN IOS
- SWIFT 2 UPGRADE SWIFT 3 COMPILE ERROR IN MANY METHOD SUCH AS WILLTRANSITIONTOTRAITCOLLECTION:NEWCOLLECTION:WITHTRANSITIONCOORDINATOR IN IOS
- HOW TO CALL SAME CLASS IN CLASS FUNCTION TO INSTANCE FUNCTIONIN SWIFT IN IOS
- IOS COLLECTION VIEW LOAD IMAGE FROM CUSTOM CELL CLASS IN IOS
- COREBLUETOOTH TERMINATE LARGE DATA TRANSFER WITHOUT TERMINATE BLUETOOTH CONNECTION IN IOS
- ALAMOFIRE CONTENT-TYPE APPLICATION/JSON FOR PUT METHOD IN IOS
- WHY APPLE USES DOUBLE POINTERS FOR METHOD LISTS IN CLASS-TYPE STRUCT ON IOS RUNTIME IN IOS
- FIREBASE PULL NOTIFICATION IN IOS
- SWIFT COLLECTION VIEW DIDSELECTITEMATINDEXPATH WHEN CLICKED ADD / REMOVE IN ARRAY IN IOS
- CAN WE SHOW A LOADING STATUS LIKE IN ANDROID ASYNCTASK UNTIL WE GET THE RESPONSE WHILE USING AN HTTP POST REQUEST IN SWIFT IN IOS
- MULTIPLE SELECTION WITH MULTIPLE SECTIONS IN UITABLEVIEW IN IOS
- KEEP SPRITE FROM SPEEDING UP IN IOS
- EKEVENTSTORE : EVENT IS NOT ADDING IN DEVICE CALENDAR FROM START DATE ONLY IN IOS
- HOW TO SPLIT STRING AT DECIMAL PLACE IN SWIFT? IN IOS
- UIVIEW ANIMATION HAPPENS FASTER THAN SPECIFIED SECONDS IN IOS
- IS IT POSSIBLE TO RECEIVE NOTIFICATIONS AFTER THE APP HAS BEEN REMOVED FROM THE APP STORE? IN IOS
- WHY IS MY APP RESETTING DUE TO A FUNCTION THAT HAS NOTHING TO DO WITH RESETTING IT? IN IOS
- PROPER UI ELEMENTS HIDING IN IOS
- SUPPORTING ALL IPHONE SIZES IN IOS
- SWIFT HOW TO SEGUE VIEWS BY TAPPING A RIGHT ACCESSORY CALLOUT BUTTON ON A MAP ANNOTATION IN IOS
- HOW TO DECREASE LATENCY IN BEACON ENTERING AND EXIT TIME IN IOS
- MOVE SPRITENODE IN DIRECTION OF A SWIPE AT A PRESET SPEED IN IOS
- UPLOADING/DOWNLOADING MULTIPLE IMAGES THE RIGHT WAY? IN IOS
- HOW TO FETCH HISTORY OF USER SPECIFIC PUSH NOTIFICATIONS FROM PARSE IN IOS? IN IOS
- XCODE SWIFT - VIEW ENTERED POSTCODE ON APPLES MAP IN IOS
- GETTING VOLUME OUTPUT FROM AVAUDIOSYNTHESISER IN IOS VIA SWIFT IN IOS
- MEASURING DATA TRANSMISSIONS FROM YOUR IPHONE APP IN IOS
- BALL DROPPING ANIMATION NOT WORKING (SWIFT) IN IOS
- HOW IS THIS ITUNES ALBUM ART BLUR EFFECT ACHIEVED? IN IOS
- INTEL XDK IOS BUILD PRODUCE ZERO SIZED IPA FILES IN IOS
- INSTEAD OF IMAGE, PREVIOUS VIDEO (AVPLAYER) IS SHOWING UP IN IN UIIMAGEVIEW IN IOS IN IOS
- HOW TO KNOW IF ALL CELLS DELETED USING MGSWIPETABLECELL IN IOS
- IOS - HOW TO USE A SMALL VIEW IN DIFFERENT VIEW CONTROLLERS IN SWIFT IN IOS
- SET ROUTE ON A MAP USING INDOO.RS IOS SDK IN IOS
- DISABLING AND ENABLING PAGE SCROLLING (SWIFT) IN IOS
- HOW TO LOAD MULTIPLE UIVIEW ON SINGLE VIEWCONTROLLER IN OBJECTIVE C IN IOS
- CAN I USE STORYBOARD TO EMBED UINAVIGATIONCONTROLLER'S VIEW INSIDE A UIVIEWCONTROLLER? IN IOS
- HOW CAN I GET THE VALUE OF THE PRIMARY KEY OF AN NSMANAGEDOBJECT? IN IOS
- APP FAILS TO REPLACE LABEL TEXT WITH UUID IN IOS
- MAKE 'READ MORE' BUTTON IN TABLEVIEW CELL IN IOS
- IOS: HOW TO SUBSCRIBE A CUSTOMER TO AN AUTOMATICALLY RENEWABLE SUBSCRIPTION IN IOS
- REALM QUERY TO VARIABLE AND RESULTS IN IOS
- IOS: RECORD DYNAMIC AUDIO PLAYBACK IN IOS