【发布时间】:2016-12-09 05:08:27
【问题描述】:
我正在尝试在 Swift 3 中编写以下 ObjC 代码:
- (void)scrollViewScroll:(UIScrollView*)scrollView {
// some code
if ([_userDelegate respondsToSelector:_cmd]) {
[_userDelegate scrollViewDidEndDecelerating:scrollView];
}
}
但不知道用什么替换 _cmd。我正在尝试功能,但它不起作用:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
// some code
if (userDelegate?.responds(to: #function))! {
userDelegate?.scrollViewDidScroll!(scrollView)
}
}
使用#selector(scrollViewDidScroll(_:)) 有效,但有没有办法让它保持通用?
编辑:可能重复的答案是关于获取函数名称,这不是我上面要问的
【问题讨论】:
-
@i_am_jorf 我已经看到了那个答案,但是如您所见,使用#function 不起作用..
-
该问题的接受答案比投票率最高的答案更适合您。
-
@jtbandes 嗨,是的,谢谢,我有点明白了,但仍然怀疑在经过两年的快速进化之后是否没有办法做到这一点,因为这个问题并没有问同样的问题事情决定问这个
-
不,没有办法。这是最近讨论过的:mail-archive.com/swift-evolution@swift.org/msg18521.html
标签: objective-c swift macros selector