我对String
定义进行了扩展test
。我也希望能够从中获取test
功能NSString
。在实际代码String.test
中更为复杂。因此,而不是重新实现它为NSString
我投str
来String
和呼叫test
就可以了。我在这里的理解是,现在str
是类型String
,String.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()
将您的第一个功能更改为:
func test() -> NSString {
let str = self as String
return ("" + str.test()) as NSString
}
这应该让你走...
然后提交错误报告。
高温超导
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句