2016-11-16 10 views
1

私はiOSプロジェクトをXcode 7Swift3としています。私はUITextViewを持っていて、ユーザーはそのテキストをNSUserDefaultsを介してString変数に保存することができます。しかし、ユーザーが段落を含む多くのテキストを持っている場合、テキストを保存すると、元の段落を認識せずに、大きな長いテキスト文字列として一緒にコンパイルされます。UITextViewテキストを[文字列]に変換し、段落を文字列に分割します

どのように段落があるのか​​を認識してから、それを別の文字列にするにはどうすればよいですか?[String]?これは可能ですか?テキストの

例:私は知っている

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

ではなくStringを保存:ユーザー名の後

This is a complex task for me. 

I don't know how to do this. 

二つの別々の小段落でこのテキスト、それはようNSUserDefaultsに保存しますto NSUserDefaults代わりに[String]を使用する必要がありますが、UITextViewを取ってテキストを文字列配列に変換し、各段落を別々のStringに分ける方法はまだ分かりません。

+0

この2行の間に改行文字があります。 –

+0

したがって、 'UITextView'テキストを' NSString'に変換すれば、textView.components(separatedBy:\ n)を使うことができますし、新しい行の検出に基づいてそれらを区切りますか? – ChallengerGuy

答えて

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

私はその後、別の文字列変数としてすべての異なる段落を持つ配列を持っていました。

私はあまりにもそれを必要としたように働いた。

+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) {    // ... }]; 

それがお役に立てば幸いです。

関連する問題