NSString扩展方法不调用String扩展方法

亚历克斯·博尔巴赫

我对String定义进行了扩展test我也希望能够从中获取test功能NSString在实际代码String.test中更为复杂。因此,而不是重新实现它为NSString我投strString和呼叫test就可以了。我在这里的理解是,现在str是类型StringString.test将被调用,返回String Test

但是,似乎str.test()结束了调用,NSString.test并且我结束了无休止的递归,直到堆栈溢出。

import Foundation

extension NSString {

    func test() -> NSString {
        let str = self as String
        return str.test() as NSString
    }
}

extension String {

    func test() -> String {
        return "String test"
    }
}

let s: NSString = "test"
s.test()
CRD

将您的第一个功能更改为:

func test() -> NSString {
    let str = self as String
    return ("" + str.test()) as NSString
}

这应该让你走...

然后提交错误报告。

高温超导

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章