从UITextView的第一行创建标题(Think Apple Notes应用程序)Swift

Wes*_*Cho 5 uitextview ios swift

我正在尝试使用UITextView的第一行设置我的笔记的标题.只有我的代码的最后一部分无效.

(如果你想知道为什么我除了使用30个字符的声明之外我还使用了"else",因为如果我没有输入至少30个字符的音符,则会出现错误)

 override func viewWillDisappear(animated: Bool) {
        detailItem!.noteText = self.textView.text


        if !self.textView.text.isEmpty {
            var textViewString:String = self.textView.text

            if let range = self.textView.text.rangeOfString("\n") {
                let rangeOfString = self.textView.text.startIndex ..< range.endIndex
                let firstLine = self.textView.text.substringWithRange(rangeOfString)

                detailItem?.noteTitle = firstLine
            } else {
                // take up to the first 30 characters as the title
                let length = count(self.textView.text)
                if length > 30 {
                    let firstLine = (textView.text as NSString).substringFromIndex(30)
                    detailItem?.noteTitle = firstLine
                } else {
                    let firstLine = (textView.text as NSString).substringFromIndex(length)
                    detailItem?.noteTitle = firstLine
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

所以不起作用的代码是最后一部分:

                    } else {
                        let firstLine = (textView.text as NSString).substringFromIndex(length)
                        detailItem?.noteTitle = firstLine
                    }
Run Code Online (Sandbox Code Playgroud)

问题:

1)普通旧int和变量int之间有什么区别?

2)如果我的方法不可能,那么实现相同结果的工作是什么?

小智 3

使用 .substringToIndex( ) 而不是 .substringFromIndex( ),您将得到正确的结果。