2016-11-16 42 views
1

我有一個iOS項目使用Xcode 7Swift3。我有一個UITextView,使用戶可以通過NSUserDefaults將該文本保存到String變量中。但是,如果用戶有很多包含段落的文本,當他們保存文本時,它將它們編譯成一大串文本,而不是識別原始段落。將UITextView文本轉換爲[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. 

我知道,而不是保存StringNSUserDefaults我需要改爲使用[String],但我仍然不知道如何使用UITextView並將其文本轉換爲字符串數組,將每個段落分隔爲一個單獨的String

+0

這兩行之間有一個換行符。 –

+0

因此,如果我將'UITextView'文本轉換爲'NSString',那麼我可以使用textView.components(separateBy:\ n),它會根據檢測到的新行將它們分開嗎? – ChallengerGuy

回答

0

我看了蘋果文檔中有關段落的參考文獻。然後我把意見和做了以下內容:

// 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") 

我當時曾與所有不同的段落作爲單獨的字符串變量數組。

工作就像我需要它一樣。

+0

沒有必要使用'NSString'。 'String'具有'components(separatedBy:)'方法。 – rmaddy

-2

請檢查蘋果的參考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) {    // ... }]; 

希望它能幫助。