iphone - objective - que es core data
DATOS BÁSICOS objectId cambia constantemente (2)
Creo que esto tal vez sea un problema de informes. Los números que muestra que se supone que son URI / UUID son muy cortos.
Los UUID (Universally Unique Identifiers), también conocidos como GUID (Globally Unique Identifiers) o IID (Interface Identifiers), son valores de 128 bits que garantizan ser únicos. Un UUID se hace único tanto en el espacio como en el tiempo combinando un valor exclusivo de la computadora en la que se generó -normalmente la dirección de hardware de Ethernet- y un valor que representa el número de intervalos de 100 nanosegundos desde el 15 de octubre de 1582 a las 00:00 : 00.
El formato estándar para los UUID representados en ASCII es una cadena punteada por guiones, por ejemplo 68753A44-4D6F-1226-9C60-0050E4C00067. La representación hexadecimal se ve, como cabría esperar, como una lista de valores numéricos precedidos por 0x. Por ejemplo, 0xD7, 0x36, 0x95, 0x0A, 0x4D, 0x6E, 0x12, 0x26, 0x80, 0x3A, 0x00, 0x50, 0xE4, 0xC0, 0x00, 0x67. Para usar un UUID, simplemente créelo y luego copie las cadenas resultantes en su encabezado y en los archivos fuente de lenguaje C. Debido a que un UUID se expresa simplemente como una matriz de bytes, no hay consideraciones de endianness para diferentes plataformas.
Creo que estás viendo valores diferentes porque solo obtienes una pieza y una pieza diferente cada vez que revisas el UUID. Representado como un URI, deberían verse más como una URL. Definitivamente no se verán como un número entero.
Tengo algunos datos que exportar a un archivo XML y poner en un servidor FTP remoto.
Tengo que identificar cada objeto con un atributo único, no importa cuál sea, pero debe ser persistente siempre => nunca puede cambiar.
No quiero crear un atributo único, secuencia, serie, etc.
Estoy usando el objectID pero cada vez que lo uso, obtengo una nueva referencia.
Sé que antes de que se haya guardado el objeto, tiene una "identificación temporal", pero una vez que se guarda, se convierte en definitivo.
No estoy viendo esto, nunca.
Cuando exporto, simplemente obtengo todos los datos y el bucle, y siempre obtengo una nueva referencia:
NSURL *objectID = [[personalDataObject objectID] URIRepresentation];
// some of id received for the SAME OBJECT (no changes made, saved, ...)
// 61993296
// 62194624
Gracias,
r.
editar
Estaba usando% d en vez de% @, ahora los datos devueltos son:
x-coredata://F46F3300-8FED-4876-B0BF-E4D2A9D80913/DataEntered/p1
x-coredata://F46F3300-8FED-4876-B0BF-E4D2A9D80913/DataEntered/p2
NSManagedObjectID
se garantiza que el NSManagedObjectID
sea coherente. Puede cambiar en función de una serie de factores, incluida la migración de datos y otros factores. Si está utilizando esto como un identificador único para sus objetos, deténgase.
La única vez que desea utilizar NSManagedObjectID
es cuando necesita pasar referencias entre hilos. Aparte de esa situación, no debes confiar en ella para nada.
Si necesita una identificación única, cree una y almacénela en sus entidades.