Wrapper FMDB VS Données de base: qui est plus facile à utiliser et à entretenir? P>
Je suis confus car la FMDB est très ancienne mais toujours de nombreux développeurs l'utilisent, tandis que les données de base sont nouvelles et sont uniquement prises en charge par 3,0 et ultérieures SDK. P>
Certains ont déclaré que la FMDB est facile à utiliser et certaines données de base. Aidez-moi s'il vous plaît afin que je puisse aller dans la bonne direction. p>
Merci d'avance p>
3 Réponses :
sauf si vous avez des exigences spécifiques du projet, j'utiliserais des données de base. Apple l'améliore constamment et l'a optimisé pour l'iPhone. P>
Merci de réponse, je pense aussi qu'il est bon d'utiliser des données de base.
J'ai utilisé à la fois lourd de nombreux projets maintenant. P>
FMDB est très simple, si vous connaissez SQL, il peut même être assez facile à utiliser. Mais ce que vous devez faire à travers le cycle de vie d'une application lorsque le modèle de données change est: p>
quelles données de base apporte au cycle de vie, c'est: p>
L'enfer que les données de base vous permettent de: p>
Alors, que demanderais-je? Pour paraphraser l'ancienne citation sur la démocratie, les données de base sont le pire système de persistance des données - à l'exception de tous les autres. Même avec la nouvelle définition de la douleur et de la souffrance que les données de base apporteront à votre vie, il reste moins de travail et plus facile à travailler avec la FMDB ou d'autres couches de persistance de données. P>
FMDB est plus simple et si vous acceptez de mettre beaucoup plus de temps dans les modifications et la définition de modèle de données qui peut être correcte. Mais généralement, je recommanderais aux gens de mordre la balle et d'utiliser des données de base à moins de ne pas avoir une raison limite. P>
Quelques conseils rapides: P>
Je ne dis pas que le support multithread de Coredata est totalement cible. Vous devez juste suivre les règles écrites, voir par ex. Stackoverflow.com/Questtions/2138252
Super réponse, je suis le nouvel utilisateur de ce site, c'est pourquoi je ne suis pas accepté ce genre de réponse, vous expliquez tout simplement tout en détail très aide pleinement. Merci beaucoup
@Yuji: Même lorsque vous suivez les règles écrites, vous pouvez parfois obtenir des erreurs étranges de revenir dans le contexte principal - surtout lorsque vous avez plus d'un fil de fond ajoutant ou modifiant les mêmes entités ... sans parler de ce qui se passe lorsque vous commencez Obtenir des notifications de fusion des antécédents qui se bloque, car une bibliothèque tierce partie utilise également des données de base. Je ne dis pas exactement que ça craint, ils ont conçu pour une utilisation multithreadée - mais comme je l'ai dit dans mon autre point, c'est juste une chose très fragile sujette à une erreur.
BTW, en tant que note latérale, la stratégie de conflit de défaillance par défaut dans les données de base est une autre exception.
wrapper FMDB est plus facile à configurer (vous pouvez simplement ajouter des données dans votre DB SQLite via Firefox Plugin SQLITEMANAGER ou utilisez un autre gestionnaire SQLite pour remplir votre base de données), plus facile à déboguer (vous pouvez réellement voir en temps réel ce qui change Votre base de données), plus facile à comprendre, plus facile à apprendre, plus facile à porter (à Web ou Android). Les données de base sont un kargeur de karge géant non intuitif, mal conçu, mal conçu et mal mis en œuvre. p>
Veuillez ajouter un exemple de Comment i> pour configurer FMDB à votre réponse. Cela ressemble plus à un commentaire maintenant.
En ce qui concerne votre commentaire "uniquement pris en charge par 3.0 et ultérieure SDK", Apple n'accepte plus les applications pour l'App Store qui ciblent une version OS antérieure à 3,0, il s'agit donc d'un non-problème.