私は学習目的のアプリを開発しています。NSXMLParserを使用したフィードパーサーです。永続性を除いて、ほとんどすべてが達成されます。アーカイブを学び、プロジェクトに実装しましたが、より良いソリューションに移行し、学習曲線を改善するために、アプリをCoreDataに移行することにしました。
以下は私のパーサーコードです。FeedChannelは、feedburnerのフィード内のチャネル属性を処理し、FeedItemファイルが処理している「アイテム」も取得します。
FeedChannel.h
#import <Foundation/Foundation.h>
@interface FeedChannel : NSObject <NSXMLParserDelegate> {
NSMutableArray *items;
NSMutableString *currentString;
}
@property (nonatomic, assign) id parentParserDelegate;
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *sDescription;
@property (nonatomic, readonly) NSMutableArray *items;
@end
FeedItem.h
#import <Foundation/Foundation.h>
@interface FeedItem : NSObject <NSXMLParserDelegate> {
NSMutableString *currentString;
}
@property (nonatomic, assign) id parentParserDelegate;
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *link;
@property (nonatomic, retain) NSString *creator;
@property (nonatomic, retain) NSString *pubDate;
@property (nonatomic, retain) UIImage *thumbnail;
@end
私はCoreDataを学ぼうとしましたが、新しいプログラマーにとっては明らかに少し複雑です。
現在、プロジェクトにCoreDataフレームワークを追加し、モデルファイルを作成し、FeedChannelとFeedItemという名前の2つのエンティティを追加しました。方法がわからないのは次のとおりです。
1)Xcodeの「CreateManaged Subclass」を使用して既存のファイルを上書きするか、インスペクターパネルの各エントリのデータモデルでクラス名を指定する必要がありますか、それとも両方のアプローチが同じですか?
2)「マネージドサブクラスの作成」を使用すると、合成ではなく動的も使用され、プロジェクトに影響するかどうかわかりません。
3)コアデータのデータモデルにUIImageタイプがあるため、サムネイル属性の扱い方。
そして最も重要な質問:
4)FeedItem内のアイテムを保持しているFeedChannelファイル内のNSMutableArray「アイテム」を処理するにはどうすればよいですか?どういうわけか1対多の関係を築く必要がありますか?
うまくいけば、初心者が直面するコアデータに関連するすべての基本的な質問に答えることができます。前もって感謝します。