0

Song というカスタム クラスがあります。このクラスの各インスタンスには、その期間を表すプロパティが必要であり、その期間を HH:MM:SS のような通常の「歌のような」形式にしたいと考えています。Song インスタンスは、JSON ネットワーク呼び出しからデュレーションなどのデータを受け取り、Core Data またはその他の方法で保持される場合もあります。

この期間を保存するためのオプションは何ですか? 次のような文字列を保存する必要がありますか

self.duration = @"0:2:14";

また

 self.duration = @"0.2.14";

NSDate の NSNumber として保存する方がよいでしょうか? もしそうなら、どうすればそれらの型に変換できますか? 文字列として保存する必要がある場合、コロンを分割するよりも数値/時間間隔に変換するより良い方法はありますか?

4

2 に答える 2

0

使用するNSDateComponent

let cal = NSCalendar.currentCalendar()            
let comps = cal.components([.Day, .Hour, .Minute], fromDate: self, toDate: otherDate, options: [])
return (comps.day , comps.hour , comps.minute)

ここで、self は でありNSDate、otherDate も ですNSDate(これは の拡張機能として実装されましたNSDate) 。

必要に応じてコンポーネントを追加します (ここでは日、時間、分のみ)

サンプル コードはタプルを返します。、経由.0でアクセスでき、必要な方法で文字列をフォーマットできます。.1.2

コードはSwift 2にあります

于 2015-10-29T11:01:37.353 に答える