Je commence juste à utiliser des données de base sur l'iPhone SDK et je cherche à enregistrer une liste ordonnée, comme un tableau. Cependant, les relations dans les données de base sont exprimées en tant que définies lors de la récupération. Cela rend difficile d'enregistrer l'ordre dans lequel les objets sont positionnés. p>
Un bon exemple serait des éléments de données dans la vue de tableau lorsque la réchrographie des éléments est autorisée. Une solution facile serait d'inclure une propriété d'index sur l'objet géré. P>
Considérez la hiérarchie suivante: p>
document <-Many-to-plusieurs-> Dataitem P>
Les différentes instances de document pourraient créer un lien vers le même datatem, et chaque document pourrait faire référence à un ou plusieurs dataoisirs (s). Par conséquent, avoir une propriété d'index dans Dataitem conduirait à moins de réutilisabilité de cette instance, c'est-à-dire que vous ne pouvez enregistrer que l'index pour une instance de document. P>
Des idées de la façon dont je peux présenter la hiérarchie soigneusement commandée dans une vue de table mais gardez toujours chaque instance de donnéesItem réutilisable? Merci! P>
3 Réponses :
Une bonne solution consiste à conserver une structure de données distincte dans le document pour mapper DataITems à une position de la vue Table. En plus de permettre au même Datatem d'exister dans plusieurs positions, si vous devez ajouter un Dataitem à plusieurs documents, cette solution fonctionnera également. P>
Retour Lorsque je cherchais différentes stratégies de conserver les objets de données de base commandés, j'ai trouvé un Publication du blog qui explique comment faire cela en détail, y compris le code d'échantillon aussi. P>
Vous pouvez le faire avec une autre entité, comme ceci: Texte alt http://galalery.me.com/davedelong/100084/screenshot-20on-202009-07-04-20AT-2010-34-56-20am/web.jpg?ver=12467253090001
Un document pourrait trouver ses données réelles en utilisant quelque chose comme ceci: p> De même, un dataitem pourrait trouver tous ses documents en faisant de même: P> NSSet * dataItemDocuments = [[dataItem orderedPositions] valueForKey:@"document"];
@BJ Homer - merci; Apparemment twitpic n'aime pas la liaison statique. Je l'ai téléchargé à MobileMe à la place.
à partir de OS X Lion (10.7) Ceci est maintenant beaucoup plus simple. Cocoa prend désormais une prise en charge d'un nouveau Nsordedset classe qui est compatible avec les données de base. Cette fonctionnalité est également disponible dans IOS, cependant nécessite iOS 5.0 ou version ultérieure. Cela signifie que cela ne peut pas être utilisé si vous souhaitez que votre application soit compatible avec les versions antérieures de iOS ou d'OS X. P>
Tout ce que vous avez à faire pour obtenir la commande est ouvert l'éditeur de modèle de données de base, sélectionnez A à plusieurs relations et vérifiez la case à cocher "commandée". P>
Connaissez-vous de toute documentation sur cette nouvelle API? Je n'ai vu que cela officiellement discuté dans les notes de publication. J'aimerais savoir, par exemple, d'afficher des enregistrements par cet ordre dans une vue de table
Il y a le lien dans ma réponse d'origine à la référence de la classe de Nsorderset. Cependant, je ne connais rien de quelque chose qui concerne spécifiquement les cas d'utilisation au sein des vues du tableau.
Nsorderedset code> ne peut actuellement pas être utilisé avec iCloud non plus.
Je dois manquer quelque chose car je ne trouve pas comment spécifier les descripteurs de tri pour le nsordedset code> Vous obtiendrez lors de l'accès à la propriété. Vous pouvez bien sûr utiliser une demande de récupération séparée avec un descripteur de tri, mais alors quel est le point de la propriété commandée?