【发布时间】:2018-04-11 20:36:38
【问题描述】:
我似乎在 Swift 4 中找不到 String 的 API。Objective-C 等价物如下。
NSString *s = @"abcdefg";
NSString *ss = @"cde";
// just check if s contains ss
NSLog(@"%d", [s containsString:ss]);
// get range of ss in s
NSLog(@"%@", NSStringFromRange([s rangeOfString:ss]));
我错过了什么?
编辑:
我收到此错误消息:
test.swift:1:19: error: cannot convert value of type 'String' to expected argument type 'String.Element' (aka 'Character')
"abcdef".contains("cde")
所以我没有意识到我错过了“import Foundation”...
【问题讨论】:
-
对不起,对不起...我在命令行中使用 swift,并且“包含”在没有 import Foundation 的情况下无法构建。是的,这似乎很明显,但我没有意识到,因为我能够在没有导入行的情况下使用 String。
-
@taichino 我已经添加了关于导入
Foundation的部分。这是使用该功能的要求。这些信息在互联网上并不容易获得 -
@staticVoidMan 是的,我正在查看此 API 文档,但找不到以字符串为参数的 contains。 developer.apple.com/documentation/swift/string在哪里可以找到导入Foundation所需的这些API?
-
当我们导入 Foundation 时,Swift 的
String得到了扩展NSString的功能。您可以在NSString's Documentation here 中找到这些 API -
我已经用更多细节更新了我的答案:)