NSInvocation传递多个参数

来源:互联网 发布:淘宝已购买的宝贝 编辑:程序博客网 时间:2024/05/29 12:14
<pre name="code" class="objc">////  ViewController.m//  Invocation////  Created by hq on 16/4/19.//  Copyright © 2016年 hanqing. All rights reserved.//#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        NSMethodSignature *signature=[ViewController instanceMethodSignatureForSelector:@selector(call:num2:)];if (!signature) {                @throw [NSException exceptionWithName:@"没有该方法啊" reason:@"你确定有这个方法?" userInfo:nil];                //[NSException raise:@"出落喽" format:@"方法找不到啊 %@",NSStringFromSelector(aSelector)];    }        NSInvocation *invocation=[NSInvocation invocationWithMethodSignature:signature];        invocation.target=self;        invocation.selector=@selector(call:num2:);        //设置参数    NSString *number=@"10086";    [invocation setArgument:&number atIndex:2];        NSString *number2=@"10010";    [invocation setArgument:&number2 atIndex:3];        [invocation invoke];        //获取返回值        id returnValue=nil;        if (signature.methodReturnLength) {               [invocation getReturnValue:&returnValue];                NSLog(@"%@",returnValue);    }        }-(NSString *) call:(NSString *)num num2:(NSString *) num2{    NSLog(@"打电话%@ %@",num,num2);        return @"你好";}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end


                                             
0 0