Ale*_*ach 5 extension-methods nsstring swift
我对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()
Run Code Online (Sandbox Code Playgroud)
将您的第一个函数更改为:
func test() -> NSString {
let str = self as String
return ("" + str.test()) as NSString
}
Run Code Online (Sandbox Code Playgroud)
这应该会让你继续...
然后提交错误报告。
华泰
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |