2009-12-20 5 views
0

Bonjour, J'ai besoin de charger les classes NSKeyedArchiver aux homologues C++/CLI. Est-il possible d'obtenir le format interne de NSKeyedArchiver?
Une autre option consiste à réécrire l'ensemble de l'enregistrement et l'ouverture du code en C++ pur pour Mac et Windows.Format interne de NSKeyedArchiver

Merci beaucoup.

Répondre

1

semblent donc vos contraintes à:

  1. Quelque chose facile à analyser sur Windows et Mac.
  2. données de modélisation 3D, donc le format doit être efficace

Si vous voulez quelque chose de rapide et sale, allez avec un plist binaire (et peut-être gzipper). Vous pouvez également essayer Google's protocol buffers mais je n'ai aucune expérience avec cela. Il existe également quelques implémentations Open Source de Foundation - Cocotron pourrait vous être très utile.

+0

Je pense que je vais écrire un format personnalisé rapide et sale en C++ pur, en utilisant standard ofstream/ifstream en STL. Cocotron semble intéressant, si l'implémentation du format est la même avec Apple. Mais je pense que la lecture des mécanismes internes de Cocotron prend plus de temps que la simple implémentation de Cstream/ifstream pour les deux plates-formes. Merci pour vos idées. –

+0

Je suis environ 75% sûr que ce serait la même chose, car je crois que NSKeyedArchiver est utilisé dans les fichiers nib. –

0

Si vous n'êtes pas en train de sérialiser un objet spécifique à Objective-C, utilisez simplement des listes de propriétés XML.

+0

Le problème est que je suis en train de sérialiser les données de modélisation dans l'application 3D, ce sera extrêmement énorme en XML. Donc, le mieux sera une forme binaire. Je peux écrire une sérialisation en C++ pur, mais j'ai écrit du code en utilisant NSKeyedArchiver et si le format interne n'est pas dur, je peux écrire une classe similaire pour C# ou C++/CLI. Merci pour la réponse rapide. –

+0

Ensuite, il n'y a vraiment aucune raison pour que vous utilisiez le format d'Apple pour vos données. –

+0

@ Azeem.Butt J'ai un peu la même chose qu'il a, et il y a une raison, d'abord mon application était mac seulement alors j'ai utilisé le format d'Apple maintenant après 3 ans, je veux le passer à Windows. Si je veux abandonner le format d'Apple, je serai en difficulté pour la compatibilité mac vers l'arrière ... Alors peut-être que je devrais essayer avec Cocotron: -/ – ColdSteel

Questions connexes