2012-05-12 5 views
0

私はエンティティスケジュールを持っています。 このスケジュールには、name、startdate、enddateなどの属性がいくつかあります。 時間との関係も1対多です。 タイムは、NSDateタイプの属性 'time'を1つのみ含むエンティティです。CoreDataに複数の属性を1つしか持たない、1対多をどのようにして保存できますか?

したがって、各スケジュールは1回以上行うことができます。

以前の実装ではNSDataに変換してNSDataに変換し、スケジュールエンティティ内に格納しました。私はそれが好きではなかった。

ここで、schedule.timesは、Timeエンティティを含むNSSetを提供します。 だから私は私が行う必要があるforループをしたいとき:

for(Time *time in schedule.times) { 
    NSLog("%@", time.time); 
} 

私の質問は:私は次の操作を行うことができるように、私はそれを設定することができます方法はありませんか?

for(Time *time in schedule.times) { 
    NSLog("%@", time); 
} 

答えて

1

さて、あなたがについて尋ねてきた特定の単純なケースのために、あなたは単にself.time.descriptionを返すためにTimeクラスに-descriptionメソッドを実装することができます。

フォーマット指定子%@を使用してオブジェクトを文字列にフォーマットすると、オブジェクトの説明を求めて結果の文字列を出力します。

しかし、私はあなたが本当にオブジェクトを記録する気にしないので、あなたの単純なケースは誤解を招くと思われます。あなたは何を本当に気にかけていますか?

+0

はい、あなたは正しいです。私は単にそれを記録することに興味がありません。私はこれを行う簡単な方法があると思います。私は、schedule.timesがNSDateを含むNSSetの代わりにNSDatesのNSSetを返す方法を探していました。 – Pieter

+0

'[schedule valueForKeyPath:@" times.time "]'を使うかもしれません。 '-valueForKey:'を 'NSSet'に適用すると、' -valueForKey: 'をセットのメンバーに適用することによって得られたすべての値のセットが合成されます。 –

+0

@ken、あなたの答えに入れて、私はそこに投稿された私の鉱山を削除します! – jrturton

関連する問題