質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

221閲覧

Swift3 mediaItem.lyricsでの「改行」とは?

mitci

総合スコア37

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/08/15 10:31

###前提・実現したいこと
Swift3でMPMusicPlayerControllerを使って取得したmediaItem.lyricsの歌詞テキストから改行コードを目印に各行ごとに配列に入れるため、以下のようなコードを用意しました。改行が見つかる度に配列に改行より前の部分のテキストを要素に追加するというものです。

swift3

1var lyricsArray: String<Array> = [] 2var lyrics = mediaItem.lyrics 3while lyrics.contains(改行) { 4//まずここの改行をなんと表現すればいいのかわかりません。 5//(\(u000d))ではうまくいきません。 6 lyricsArray.append(改行よりも前のテキスト) 7 //ここの改行よりも前のテキストの指定もどうすればいいのやら・・・ 8}

ちなみに歌詞テキストはiTunesで設定したmp3のid3v2タグに書き込んだUTF-16エンコードのテキストです。

###試したこと
改行の部分はunicodeスカラーからU000dなのかな、と思ったのですが、
わかったのはそれくらいであとは全くわかりません。
特に改行よりも前のテキストの指定の仕方が・・・

###補足情報(言語/FW/ツール等のバージョンなど)
swift3 xcode8 mp3のid3v2のUSTLにiTunesで入れた歌詞

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

swift

1 2let lyricsArray = mediaItem.lyrics.components(separatedBy: "\n")

で目的のものができます。


var lyricsArray: String<Array> = []

var lyricsArray: Array<String> = []
の誤りと思われます。

よく間違えるのであれば、
var lyricsArray: [String] = []
とした方が間違えにくいです。

投稿2017/08/15 10:56

MasakiHori

総合スコア3384

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitci

2017/08/16 10:41

空配列のケアレスミス・・・ ご指摘ありがとうございます。何しろその程度の素人なもので・・・ また、 separatedBy:のあとを"\n"とするとなぜかランタイムエラーになってしまったため、 let lyricsArray = mediaItem.lyrics.components(separatedBy: CharacterSet.newlines) としたところ、うまくいきました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問