当前位置: 首页 > 面试题库 >

在Swift中对String调用NSString方法

夏烨霖
2023-03-14
问题内容

苹果的Swift
文档指出

如果您正在Cocoa或Cocoa Touch中使用Foundation框架,则可以使用整个NSString API来调用您创建的任何String值

如果我有一个String对象,例如

var newString: String = "this is a string"

如何执行类似containsStringString var的NSString操作?


问题答案:

经过一些研究,看起来containsString不是一个String函数,但是可以通过桥接到来访问NSString

在苹果公司关于将Swift与Cocoa和Objective-
C结合使用
的文档中,它说

Swift会在String类型和NSString类之间自动桥接。这意味着在任何使用NSString对象的地方,都可以改用Swift
String类型,并从这两种类型中受益

但是看来,只有NSString的某些功能可以访问而无需显式桥接。要桥接到NSString并使用其任何功能,可以使用以下方法:

 //Example Swift String var
    var newString:String = "this is a string"

    //Bridging to NSString
    //1
    (newString as NSString).containsString("string")
    //2
    newString.bridgeToObjectiveC().containsString("string")
    //3
    NSString(string: newString).containsString("string")

所有这三个工作。有趣的是,只有某些NSString方法可用,Strings而其他方法则需要显式桥接。这可能是随着Swift的发展而建立的。



 类似资料:
  • 问题内容: 从名称(以String格式)中调用方法有时会很有用。 在Swift中,建议更改行为并使用闭包“动态”地进行操作,例如,您可以拥有一个函数字典,名称为键,实现为值。 但是,有时您只想简单地知道“怎么做”,这就是这个问题的原因。 那么,如何从名称作为字符串开始动态调用Swift方法? 在目标C中很简单: 但是在Swift中被禁止 还有其他选择吗? 问题答案: 在Swift中,您应该使用闭包

  • 随着Swift的引入,我一直在努力了解这门新语言 我是一名iOS开发人员,会在应用程序中使用等类型。我注意到在苹果的“the Swift Programming Language”电子书中,他们使用了Swift类型 我注意到Swift类型没有(或者名称不同)Foundation类型所具有的某些功能。例如,具有属性。但是我没有找到类似的Swift。 我在想,对于一个iOS应用程序,我应该仍然使用基础

  • 问题内容: 我试图最终获得一个有效的,但似乎无法将我的字符串数据(来自)放入一个可用的对象中。 我已经看到这种方法的另一种选择: 但是我似乎找不到用例的任何文档。我愿意在必要时将字符串放入其他类型,但是使用Swift 的初始化选项似乎都不是我想要的。 问题答案: 在Swift 3中 在Swift 2中(或者如果您已经有一个实例) 在Swift 1中(或者如果您有swift ): 另请注意,这 是一

  • 问题内容: 在Objective-C中,它看起来像这样: 我需要Swift这样的东西,可以吗? 请显示工作示例。 问题答案: 您的Objective-C代码(使用类别)可以直接转换为Swift(使用扩展名)。 首先,您必须创建一个“桥接头”并添加 然后: 这可以写得更短和更快速 Swift 2更新: 要返回以Base-64编码的字符串而不是十六进制编码的字符串,只需替换 与 Swift 3更新:

  • 问题内容: 出现错误: 无法使用类型为参数的列表进行调用 如何解决呢? 问题答案: 使用Xcode7beta6: 带有Xcode7发行版:

  • 问题内容: swift在String上是否有trim方法?例如: 问题答案: 这是从的开头和结尾删除所有空白的方法。 (示例使用 Swift 2.0 进行了测试。) (示例使用 Swift 3+ 进行了测试。) 希望这可以帮助。