用Swift语言编写的_cmd

Lon*_*gNV 13 selector ios swift

我之前的问题被标记为重复.我试图编辑我的问题,但我无法删除重复的标记,所以我必须创建一个新的 什么是等同于_cmd的swift?

我想获取当前的方法名称以在类似于此的格式消息中使用

[NSExeception raise:NSInternalInconsistencyException format:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)]
Run Code Online (Sandbox Code Playgroud)

另外,我想使用_cmd作为键来设置关联对象.有没有人知道Swift中相当于_cmd我真的很感激.

Nat*_*ook 20

没有_cmd,但你可以__FUNCTION__用来获取当前函数的名称,它可以在大多数时候用来代替选择器.

func myUnimplementedMethod() {
    println("You must override \(__FUNCTION__) in a subclass")
}
myUnimplementedMethod()
// prints "You must override myUnimplementedMethod() in a subclass"
Run Code Online (Sandbox Code Playgroud)

  • 请注意,`__FUNCTION__`在Swift 2.2中被`#function`替换. (19认同)