以前,當你想看看你的Swift字符串是否包含另一個字符串時,你可以將它轉換爲NSString並調用.containsString。蘋果以他們的無限智慧提出了這個版本的意識,所以如果你在S2下試用它,即使你的目標平臺確實支持它(我認爲是一個bug),它也會要求一個#available包裝器。.containsString在Swift 2中?
0
A
回答
1
所以最好的解決問題的方法是這樣的:
extension String {
func contains(substr: String) -> Bool {
if #available(OSX 10.10, *) {
return NSString(string: self).containsString(substr)
} else {
return self.rangeOfString(substr) != nil
}
}
}
,現在要檢查它,而不是這樣的:
if NSString(string: line).containsString(" ")...
你使用太多更好看:
if line.contains(" ")...
這不再抱怨版本,(恕我直言)看起來更好。幾乎可以確定你想要這個太:
extension String {
var length: Int {
return self.characters.count
}
}
蘋果不斷變化的你長的路,我希望未來的API的變化將是#available
-able,在這一點.length
可以輕鬆地修改。這些只是爲了理智:
extension String {
subscript (r: Range<Int>) -> String {
get {
let subStart = advance(self.startIndex, r.startIndex, self.endIndex)
let subEnd = advance(subStart, r.endIndex - r.startIndex, self.endIndex)
return self.substringWithRange(Range(start: subStart, end: subEnd))
}
}
func substring(from: Int) -> String {
let end = self.characters.count
return self[from..<end]
}
func substring(from: Int, length: Int) -> String {
let end = from + length
return self[from..<end]
}
}
extension String {
func trim() -> String {
return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
}
func trim(withSet: NSCharacterSet) -> String {
return self.stringByTrimmingCharactersInSet(withSet)
}
}
+0
各種基於整數的下標方法也已發佈在http://stackoverflow.com/questions/24092884/get-nth-character-of-a-string-in-swift-programming-language的答案中。 –
相關問題
- 1. 雲代碼 - containsString
- 2. NSString containsString崩潰
- 3. RestAssured不能使containsString工作
- 4. 在SWIFT 2
- 5. 我在SWIFT 2
- 6. 在Swift中引入2
- 7. 在Swift 2中更改registerUserNotificationSettings?
- 8. 在Swift 2中使用TouchesMoved
- 9. UITextInputMode.activeInputModes()在Swift 2中崩潰
- 10. 不能在SWIFT 2
- 11. 不能在SWIFT 2
- 12. iOS7只返回'NSInvalidArgumentException',原因:' - [__ NSCFString containsString:]:
- 13. 查詢解析containsString不敏感
- 14. Swift 2到Swift 3.0 motionManager
- 15. 在Swift 2中訪問攝像機iOS
- 16. 在Swift 2中使用CoreData的moveRowAtIndexPath
- 17. 在Swift 2中創建ASYNC任務
- 18. 在UITableViewCell Swift中運行Segue 2
- 19. 在Swift 2中的錯誤處理
- 20. Swift 2在CompletionHandler中調用函數
- 21. 在swift中委派錯誤2
- 22. 在AFNetworking中使用Swift 2進行POST
- 23. 如何讓kCGPathStroke在Swift 2中工作?
- 24. setLineDash在Swift中對稱2/3
- 25. didBeginContact不能在Swift 2中工作+ SpriteKit
- 26. UILabel沒有在Swift 2中更新
- 27. Tableview不顯示數據在swift 2中
- 28. 在swift中創建2列的視圖
- 29. 如何在Swift 2中設置previewLayer.connection.videoOrientation?
- 30. 在Swift 2中創建課程
爲什麼不使用'rangeOfString()'而沒有橋接到'NSString'?這適用於所有當前的Swift版本。 –