Từ các tài liệu, có vẻ như việc gọi containsString()
Chuỗi sẽ hoạt động:
Kiểu Chuỗi của Swift được kết nối liền mạch với lớp NSString của Foundation. Nếu bạn đang làm việc với khung Foundation trong Ca cao hoặc Ca cao cảm ứng, toàn bộ API NSString có sẵn để gọi bất kỳ giá trị Chuỗi nào bạn tạo, ngoài các tính năng Chuỗi được mô tả trong chương này. Bạn cũng có thể sử dụng giá trị Chuỗi với bất kỳ API nào yêu cầu phiên bản NSString.
Tuy nhiên, nó dường như không hoạt động theo cách đó.
Nếu bạn cố gắng sử dụng someString.containsString(anotherString)
, bạn sẽ nhận được một lỗi thời gian biên dịch 'String' does not contain a member named 'containsString'
.
Vì vậy, bạn còn lại một vài lựa chọn, một trong số đó là kết nối rõ ràng String
với Objective-C bằng cách sử dụng bridgeToObjectiveC()
hai tùy chọn khác liên quan đến việc sử dụng một cách rõ ràng NSString
và lựa chọn cuối cùng liên quan đến việc truyền String
tớiNSString
Bằng cách bắc cầu, bạn sẽ nhận được:
var string = "hello Swift"
if string.bridgeToObjectiveC().containsString("Swift") {
println("YES")
}
Bằng cách gõ rõ ràng chuỗi là một NSString
, bạn sẽ nhận được:
var string: NSString = "hello Swift"
if string.containsString("Swift") {
println("YES")
}
Nếu bạn đã có String
, bạn có thể khởi tạo NSString từ nó bằng cách sử dụng NSString (chuỗi :):
var string = "hello Swift"
if NSString(string: string).containsString("Swift") {
println("YES")
}
Và cuối cùng, bạn có thể cast một hiện String
một NSString
như sau
var string = "hello Swift"
if (string as NSString).containsString("Swift") {
println("YES")
}