Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift NSRange的功能是什么_Swift_Foundation_Nsrange - Fatal编程技术网

Swift NSRange的功能是什么

Swift NSRange的功能是什么,swift,foundation,nsrange,Swift,Foundation,Nsrange,我对NSRange的功能感到困惑 此代码中NSRange的功能是什么 shouldChangeTextIn range: NSRange Foundation是Swift之前的一个旧框架。它主要是用Objective-C编写的,并使用它的类型NSRange是一种C结构,在Objective-C中与NSString一起大量使用 NSString转换为Swift作为String,大多数使用NSRange的方法已转换为使用Range(或其他Swift类型)的方法。然而,在某些方法中,由于各种兼容性原

我对NSRange的功能感到困惑

此代码中NSRange的功能是什么

shouldChangeTextIn range: NSRange

Foundation
是Swift之前的一个旧框架。它主要是用Objective-C编写的,并使用它的类型
NSRange
是一种C结构,在Objective-C中与
NSString
一起大量使用

NSString
转换为Swift作为
String
,大多数使用
NSRange
的方法已转换为使用
Range
(或其他Swift类型)的方法。然而,在某些方法中,由于各种兼容性原因,Objective-C类型仍然存在
UITextViewDelegate
UITextFieldDelegate
是主要示例

要正确使用
NSRange
,应首先将
String
转换为
NSString
,例如:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText: String) -> Bool
    let previousText = (textView.text ?? "") as NSString
    let newText = previousText.replacingCharacters(in: range, with: replacementText)

   ...
}
在此方法中,
范围
描述正在更改的字符串范围。其
位置
告诉您新文本的放置位置,其
长度
告诉您有多少以前的文本被替换/删除


例如,
NSRange(位置:2,长度:1)
replacementText:“
告诉您第三个字符正在被删除(例如,当按backspace时)。

您是否尝试过用谷歌搜索此字符?该方法的说明中对此进行了明确说明。