performSelector的返回值是什么:如果我传递了一个返回基元类型(在对象上)的 Select 器,比如NSDateComponents上的"week"(将返回int)?

推荐答案

使用NSInvocation返回浮点值的示例如下:

SEL selector = NSSelectorFromString(@"someSelector");
if ([someInstance respondsToSelector:selector]) {
    NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:
                                [[someInstance class] instanceMethodSignatureForSelector:selector]];
    [invocation setSelector:selector];
    [invocation setTarget:someInstance];
    [invocation invoke];
    float returnValue;
    [invocation getReturnValue:&returnValue];
    NSLog(@"Returned %f", returnValue);
}

Objective-c相关问答推荐

覆盖@property setter 和无限循环

Objective-C 静态、外部、公共变量

UIButton 标题更改为默认值

UITabBar 中的自定义 colored颜色

在 10.9 上以编程方式启用对辅助设备的访问

Objective-C 和 Cocoa 有什么区别?

改变 RGB colored颜色 的色调

将 CSS 插入 UIWebView / WKWebView 中加载的 HTML

右对齐的 UITextField 空格键在 iOS 7 中不前进光标

在 Objective-C 中访问命令行参数

主队列上的 dispatch_sync 在单元测试中挂起

如何在 iPhone 上显示来自 API 的 HTML 文本?

我们可以在 UIPageViewController 中自定义页面指示器吗?

Electron邮件镇静 iOS 8

Xcode 在您的 keys 串中找不到此配置文件的有效私有证书/有效密钥对

如何在 UIAlertController 中添加 textField?

UITableViewCell 点击展开

-fembed-bitcode 在 6.0 之前的 iOS 版本上不受支持

最大 CGFloat 值是否有常数?

Facebook SDK 登录永远不会在 iOS 9 上回调我的应用程序