首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从NSInvocation获取NSString结果?

从NSInvocation获取NSString结果的方法如下:

  1. 首先,需要创建一个NSInvocation对象,并设置要调用的方法。
代码语言:txt
复制
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setSelector:@selector(methodName)];
  1. 然后,需要设置方法的参数。
代码语言:txt
复制
[invocation setArgument:&arg1 atIndex:2];
  1. 接下来,需要调用方法并获取返回值。
代码语言:txt
复制
[invocation invoke];
NSString *result;
[invocation getReturnValue:&result];
  1. 最后,可以使用返回的NSString结果。
代码语言:txt
复制
NSLog(@"Result: %@", result);

完整的代码示例如下:

代码语言:txt
复制
- (NSString *)getStringResult {
    NSMethodSignature *signature = [[self class] instanceMethodSignatureForSelector:@selector(getString)];
    NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
    [invocation setSelector:@selector(getString)];
    [invocation setTarget:self];
    [invocation invoke];
    NSString *result;
    [invocation getReturnValue:&result];
    return result;
}

- (NSString *)getString {
    return @"Hello, World!";
}

在这个示例中,我们定义了一个名为getString的方法,该方法返回一个NSString对象。然后,我们使用NSInvocation对象调用该方法,并获取返回值。最后,我们将返回值作为getStringResult方法的返回值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Objective-C中NSInvocation的使用

    NSInvocation. 第一个PerformaceSelector比较常用, 也比较简单。...对象, 在这之前最好先判断下前面创建的signature是否为nil, 方法不存时就是nil NSInvocation *invocation = [NSInvocation invocationWithMethodSignature..."; //第二个位置开始添加参数, 因为前面两个位置已经被占用了, 分别时self(target), selector(_cmd) [invocation setArgument...); NSLog(@"%@", str3); } @end 输出结果为: 2017-01-06 11:55:07.398 BezierPathDemo[1203:97184] str1 2017...nil]; } 2、方法的参数个数与外界传进来的参数数组元素个数不符 //此处不能通过遍历参数数组来设置参数,因为外界传进来的参数个数是不可控的 //因此通过numberOfArguments方法获取的参数个数

    72920

    如何Facebook获取流量?

    我认为有一点非常重要 - 像我们这样的营销人员应该理解统计数据是如何工作的,尤其是具有代表性的数据。...其中一个你可能听说过是Buzzfeed,去年他们发表了一个长篇大论,关于他们如何社交媒体获得70%以上流量,并声称他们不关心搜索,认为搜索优化毫无用处,现在没有人做SEO了,如此等等。...因此,性能(Performance)和交互度(Engagement)的角度来衡量,Facebook的流量属于较低层次。...在没有非常确凿的数据来源情况下,我认为可以这样做:“我们知道Google目前每天搜索60亿次搜索,搜索结果平均点击数为......?哦,我们不知道。...04 第四点,吸引初次点击的角度来分析,标题往往比内容更为关键。

    5.1K40

    iOS单元测试的那些事儿

    *)string { return [string componentsSeparatedByString:@":"].count; } @end 这个类本身非常简单,只提供了一个获取字符串分段数的方法...测试完成后,可以直接在Xcode中查看代码覆盖率,如下图所示: 单元测试保持较高的覆盖率是非常重要的,其另一个方面也是测试质量的保障。...编写测试用例时,有3个核心要考虑的点,即输入,输出和结果判定。我们通过输入来设置测试用例的初始状态,通过对输出的结果判定来决定测试用例是否通过。 3....XCUIApplication alloc] init] launch]; }]; } } 其中,XCTApplicationLaunchMetric对象配置为冷启动指标,其会计算App...检查页面某些元素是否存在 2.通过代码操作某些元素的交互 3.检查交互后的结果 因此,在UI测试中,如何查询到页面的元素是最重要的,这些工作由XCUIElementQuery类来完成,这个类相关的用法非常繁杂

    1.1K20

    iOS线程相关·零散知识点集合计划(更新中)

    如何通过 performSelector 传入多参数 方法一: 利用数组 把参数放进一个数组/字典,直接把数组/字典当成一个参数传过去,具体方法实现的地方再解析这个数组/字典 NSArray * array...", nil]; [self performSelector:@selector(fooFirstInput:) withObject: array afterDelay:15.0]; 方法二: 使用NSInvocation...SEL aSelector = NSSelectorFromString(@"doSoming:argument2:"); NSInteger argument1 = 10; NSString *argument2...= @"argument2"; if([self respondsToSelector:aSelector]) { NSInvocation *inv = [NSInvocation invocationWithMethodSignature...两种常见队列 主队列的获取方法 dispatch_queue_t queue = dispatch_get_main_queue(); 全局并发队列的获取方法 dispatch_queue_t queue

    28230
    领券