我使用iOS
和Xcode 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
。
答案 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) { // ... }];
希望它有所帮助。