2011-05-23 16 views
1

xml形式の単語のリストを "コアデータ"データベースにどのように渡しますか?xml結果をコアデータオブジェクトに渡す方法

それから、アプリケーションが読み込まれるたびに、そのデータベースが最新であるかどうかを確認する方法を確認しますか?

+0

私は、あなたが何をしているの詳細をいくつか与える必要があると思う。質問は少し曖昧です。私。コアデータデータベースにシリアル化しますか?または、他の方法で処理したいですか?どのような種類のコアデータバックエンドを使用していますか?あなたは「最新のもの」とはどういう意味ですか?ものによって? – drekka

+0

最初にコアデータのオブジェクトを作成して管理する方法を学び、その後、XMLをモデルに解析することを考え始めます。 –

+0

私はxml形式のサーバーからアクセスしている製造元のリストがあります。そのリストをダウンロードし、コアデータsqliteデータベースに解析して、アプリケーションがそこで開かれるたびにキャッシュとして動作します。 。次に、sqliteデータベースの新しいデータが最新のものであるかどうかを確認する最も良い方法が何であるかを知りたいと思います。 – tinhead

答えて

2

入力XMLを文字列として解析する必要があります。あなたがNSXMLDocumentを使用するMac上である場合は...このような何かしてみてください:

NSString *yourXML = @""; // replace with your xml as nsstring 

NSError *error; 
    NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithXMLString:yourXML options:0 error:&error]; 
    if (error) NSLog(@"Error parsing xml: %@", [error description]); 

をそして、あなたは、このようなXPathクエリを使用することに興味を持っているすべての項目の解析ができます

NSArray *items = [xmlDoc nodesForXPath:@"//yourItem" error:&error]; 

そしてを同様に、xml形式でそのプロパティのすべての項目をループすることができます。

次に、XMLにある1つ以上のキープロパティに従ってアイテムを取得し、それらが既に存在するかどうかを確認します。

コアデータオブジェクトを簡単に管理する方法については、この投稿http://objectivesheep.com/archive/core-data-active-record-sheepdata/をご覧ください。その場合は、単に次のようなものを使用します:

if ([YourManagedObject checkIfEntityExistsWhereProperty:@"yourKeyProperty" equalsValue:keyValueFromXML]) .... 

希望します。

+0

ええ、ありがとう男:)今それに入るつもりです。 – tinhead

関連する問題