将UITextView文本转换为[String],将段落分隔为字符串

时间:2016-11-16 19:21:47

标签: ios swift3 uitextview

我使用iOSXcode 7进行了Swift3项目。我有一个UITextView,可让用户通过NSUserDefaults将该文本保存到String变量中。但是,如果用户有很多包含段落的文本,当他们保存文本时,它会将它们编译成一个很长的文本字符串,而不是识别原始段落。

如何让文本字符串基本上识别出段落,然后将它们分成单独的字符串,这些字符串是[String]的一部分?这可能吗?

文字示例:

This is a complex task for me.

I don't know how to do this.

在用户为此文本命名后,这是两个单独的小段落,它将保存为NSUserDefaults

This is a complex task for me.  I don't know how to do this.

我知道而不是将String保存到NSUserDefaults我需要使用[String],但我仍然无法弄清楚如何使用UITextView和将其文本转换为字符串数组,将每个段落分隔为单独的String

2 个答案:

答案 0 :(得分:0)

我看了Apple关于段落的文件中的参考文献。然后我接受了建议并做了以下事情:

// Assign the text to an NSString Variable
var newTextNS = instructions.text! as NSString

// Separate the text paragraphs into String Variables
var newArray = newTextNS.components(separatedBy: "\n")

然后我有一个数组,其中所有不同的段落都是单独的String变量。

就像我需要的那样工作。

答案 1 :(得分:-2)

请查看Apple的参考Words, Paragraphs, and Line Breaks

NSArray *arr = [myString componentsSeparatedByString:@"\n"];

NSString *string = /* assume this exists */;

NSRange range = NSMakeRange(0, string.length);

[string enumerateSubstringsInRange:range

                           options:NSStringEnumerationByParagraphs

                        usingBlock:^(NSString * _Nullable paragraph, NSRange paragraphRange, NSRange enclosingRange, BOOL * _Nonnull stop) {             // ... }];

希望它有所帮助。