2009-08-27 14 views
10

Projektuję dla projektu i nic nie zostało zaimplementowane - więc wciąż przechodzę przez proces myślowy, aby ustalić, czy Core Data jest opłacalna dla projektu.Integracja XMLRPC/usług sieci Web z danymi podstawowymi

Oto moje zapytanie -

Chcę utworzyć zarządzanego modelu obiektowego przy użyciu danych Core reprezentować pewną stronie serwera obiektów np folder, plik, itd .... Wszystkie obiekty (folder, plik etc ..) są dostępne za pośrednictwem interfejsów API XMLRPC, które zwracają dobrze sformatowany kod XML.

Na przykład, nie może być API o nazwie getFolders że może zwrócić następujące -

<xml> 
<folders> 
    <folder id=1> 
    <name>Test 123</name> 
    <files> 
     <file id=100> 
      <name>hello.txt</name> 
      <path>./hello.txt</path> 
     </file> 
     ... 
    </files> 
</folder> 
... 
</folders> 

Podobnie nie może być API updateFolders który działa na istniejącym sprzęcie folderu i dla uproszczenia powiedzmy, że to po prostu aktualizuje Nazwa folderu. Żądanie to będzie pisać coś jak następuje -

<xml> 
<method name="updateFolder"> 
    <folder_id="1"> 
    <params> 
    <param name="folder_name" value="Test"/> 
    </params> 
</method> 

Próbuję wymyślić -

1. How can I represent folder as a managed object i.e., how do I initialize it from the above XML 
    2. Once initialized, how can I handle an update to it using the updateFolder API shown above 

Wydaje się, że takie jak punkt XMLStoreType NSPersistentStore bezpośrednio do rzeczywistych plików XML, które posiadają ostateczne dane. W moim przypadku XML jest po prostu tym, co powróciło z wywołania XMLRPC, a rzeczywiste dane są przechowywane na DB po stronie serwera. Dlatego, ponieważ magazyny nie są bezpośrednimi reprezentacjami obiektów (lub gdzie przechowywane są obiekty), zastanawiałem się, czy powinienem stworzyć niestandardowy NSAtomicStore i obsłużyć ładowanie i zapisać odpowiednio dla inicjalizacji i aktualizacji. Oto link na robienie tego na NSAtomicStore -

http://devworld.apple.com/documentation/Cocoa/Conceptual/AtomicStore_Concepts/Articles/asLoading.html#//apple_ref/doc/uid/TP40005298

Proszę dać mi znać, jeśli to ma sens, czy istnieje lepszy sposób, aby sobie z tym poradzić.

Z góry dziękuję za pomoc!

Odpowiedz

1

Czytałeś przez:

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html

Również sprawdzić TBXML:

TBXML jest lekki dokument XML parser napisane w Objective-C przeznaczony do stosowania na Apple iPad, iPhone & Urządzenia iPod Touch. TBXML ma na celu zapewnienie najszybszego możliwego analizowania XML przy jednoczesnym wykorzystaniu najmniejszej ilości zasobów. Wymaganie dotyczące bezwzględnej wydajności osiąga się kosztem walidacji i modyfikacji XML. Niemożliwe jest modyfikowanie i generowanie poprawnego XML z obiektu TBXML i podczas importowania i analizowania dokumentu XML nie jest przeprowadzana żadna walidacja.

0

Nie ma prostego sposobu robienia tego, o co prosisz, a dane podstawowe nie ułatwią ci tego.

Zakładam, że przeczytałeś dokumentację - musisz określić odpowiedni model, aby lokalnie reprezentować dane zdalne, zarządzać interakcjami między zdalnym końcem i lokalnym końcem oraz synchronizować stan między końcami. Decydowanie i koordynacja procesu synchronizacji jest najtrudniejszą częścią. Nie jestem pewien, czy istnieje jakakolwiek struktura zewnętrzna, która może zautomatyzować ten proces.

Powiązane problemy