2016-04-16 2 views
1

OSX - Swift 私はキーワードの束でモジュールに追加した 'Keywords.rtfファイル'を埋めています。私はきちんとしたフリークなので、私はこれが私が考えることができる最も素朴な方法をしようとしています。複数の配列がテキストの個々の段落で埋め込まれています

私はテキストのドキュメントに複数の段落を持ちたいと思います。各段落にはカンマで区切った同様の文字列があります。 textDoc

Hi, Hey, Hello 

Monday, Tuesday, Today is Wednesday 

Apple, I like Bananas, I eat Orange's 

の例では、その後、私のViewControllerで、配列内のこれらの段落を格納することが可能です。このよう

var greetings = ["Hi", "Hey", "Hello"] 
var days = ["Monday", "Tuesday" ,"Wednesday"] 
var fruits = ["Apple" , "I like Bananas" , "I eat Orange's"] 

として少しさらにそれを取るために、私は配列に格納するとき、私は、テキストファイルで私の段落の上の見出しを持つことができるので、私はちょうど何かを言うことができる方法があります:挨拶しましょう[]は、 = "Greetings"の後の段落にあるすべての文字列separatedBy( "、")。

テキストドキュメントは、私が おかげで、より特異的であることができるなら、私に教えてください

Greetings 
    Hi, Hey, Hello 
Days  
    Monday, Tuesday, Today is Wednesday 
Fruits  
    Apple, I like Bananas, I eat Orange's 

ようになります。

答えて

1

plistファイルを代わりに使用することをお勧めします。 Xcodeで

、新しいファイルを空のplistを作成 - >リソース:あなたの中での使用のための内容を取得、最後に

enter image description here

enter image description here

その後のplistを移入アプリ:

let plist = // the URL to the plist, usually you put it in your bundle 
guard let content = NSDictionary(contentsOfURL: plist) as? [String:[String]] else { 
    fatalError() // or anything else to handle the missing plist 
} 
guard let days = content["days"] else { fatalError() } 
print(days) // ["Monday", "Tuesday", "Wednesday"] 
print(days[0]) // "Monday" 
あなたのコメントに続いて

let allValues = content.flatMap { (key, value) in return value } 

ショートバージョン:

let allValues = content.flatMap { $0.1 } // ["Apple", "I like Bananas", "I eat Orange's", "Hi", "Hey", "Hello", "Monday", "Tuesday", "Wednesday"] 
+0

あなたは素晴らしいですcontentので、あなたがこれを行うことができ、すべての値を取得するには、今だけの辞書です。時間を明確な答えに入れてくれてありがとう、私は今それに亀裂を与えるでしょう。 – Steve

+0

うまくいった!私は 'contentsOfUrl'を' contentsOfFile'に変更しなければなりませんでした。また、どのように私はこのplistのすべての値を1つの配列に描画できますか?これは可能ですか? – Steve

+1

ニース!すべての値を取得する方法を示すために私の答えを更新しました。 – Moritz

関連する問題