2018年6月30日 星期六
NSRange vs. Range and NSString vs. String
NSRange 是 Objective-C 的 Range, Range 則是 Swift 的 Range,是不同的結構。
但是 iOS API 內因為歷史因素都是給 NSRange ,所以通常要 cast 一下,例如:
```swift
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let oldText = textField.text!
let stringRange = Range(range, in: oldText)!
let newText = oldText.replacingCharacters(in: stringRange, with: string)
if newText.isEmpty {
doneBarButton.isEnabled = false
} else {
doneBarButton.isEnabled = true
}
return true
}
```
至於String 則是會 bridge 到 NSString,所以都有一樣的 API
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言