Persistant dates à SQLite3 dans une application iPhone
Je développe une application iPhone qui persiste de données à une base de données SQLite3.
Pour chaque ligne je persiste, je souhaite inclure une 'date de création' et une 'date de dernière modification'
Ma question est qu'est-ce que le recommander approche pour stocker ces informations dans une table?
Les propriétés sont représentées par NSDate dans mon application, mais je ne suis pas sûr de savoir comment représenter cette information dans ma table.
Il semble que SQLite3 fournit un type DATETIME, mais ne dispose pas d'un natif de comprendre comment analyser cette information.
Toute aide serait grandement appréciée.
Merci d'avance.
source d'informationauteur lucasweb
Vous devez vous connecter pour publier un commentaire.
J'utilise généralement un double, quelque chose comme:
où dateObject est un NSDate*. Ensuite, lors de l'obtention des données de la DB, utilisez
Magasin de type C-temps (par exemple, la time_t/int valeur retournée par time()) de la valeur dans un UNSIGNED INT colonne. Convertir comme drewh dit avec NSDate:
À l'exception de stocker un nombre entier, sauf si vous avez besoin de sous-deuxième granularité (qui, en général, pour la création/last-modified, est exagéré). Unsigned ints sont beaucoup plus petits et plus faciles à traiter que les doubles. Bien que cela ne peut pas d'importance dans la plupart des ordinateurs de bureau et des applications web de plus, il aide certainement sur l'iPhone. Chaque petit peu aide.
Un autre avantage de C-fois que la plupart des gens ne réalisent pas est qu'ils sont fuseau horaire agnostique. Si jamais vous avez besoin d'un support pour plusieurs fuseaux horaires, c'est très pratique.
Je convertir vers/à partir de ISO8601 chaînes: http://en.wikipedia.org/wiki/ISO_8601
Beaucoup plus readible/hackable que les intervalles de temps.
Selon les docs il n'y a pas de type de données DATETIME! J'utilise un réel type de données et les convertir en un NSDate à un réel à l'aide de la timeIntervalSinceReferenceDate méthode.
Comment obtenir une colonne datetime dans SQLite avec Objective-C