如何将Swift String桥接到Objective C NSString?

布伦

我在服用疯药吗?直接脱离文档:

“ Swift自动在String类型和NSString类之间架起桥梁。这意味着在任何使用NSString对象的地方,都可以改用Swift String类型,并获得两种类型的好处-String类型的插值和Swift设计的API,以及NSString类的广泛功能。因此,您几乎永远不需要在自己的代码中直接使用NSString类。实际上,当Swift导入Objective-C API时,它将所有NSString类型替换为String类型。当您的Objective-C代码使用Swift类时,导入器将在导入的API中将所有String类型替换为NSString。

要启用字符串桥接,只需导入Foundation。”

我已经做到了...考虑:

import Foundation

var str = "Hello World"

var range = str.rangeOfString("e")

// returns error: String does not contain member named: rangeOfString()

然而:

var str = "Hello World" as NSString

var range = str.rangeOfString("e")

// returns correct (2, 1)

我想念什么吗?

慈汉泰克

您已经有了问题的答案。您缺少演员表。在编写Swift代码时,这样的语句

var str = "Hello World"

创建一个Swift String,而不是一个NSString要使其用作NSString,您应在使用前将其转换为NSString使用as运算符。

这与调用用Objective-C编写的方法并提供aString而不是anNSString作为参数不同。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档