PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile 2024 → Désérialisation impossible sur iPhone
Désérialisation impossible sur iPhone
Iniciado por Jason SIVAULT, 20,mar. 2019 10:36 - 2 respuestas
Miembro registrado
27 mensajes
Popularité : +0 (2 votes)
Publicado el 20,marzo 2019 - 10:36
Bonjour à tous.

J'ai un bug que je n'arrive pas à comprendre depuis 3 jours.

Donc je développe une application dans laquelle je dois afficher des dossiers thématiques.

J'ai donc un webservice qui me renvois un tableau de structure :

ST_Dossier est une structure
IdDossier est un entier sur 8 octets
Titre est une chaîne
Accroche est une chaîne
Image est un Buffer
RepDossier est une chaîne
Theme est une chaîne
ListePDF est un tableau de chaîne
FIN
l_t_EspaceThem est un tableau de ST_Dossier

////
//Traitement de remplissage
///
Sérialise(l_t_EspaceThem,l_buf_Retour,psdXML)
RENVOYER l_buf_Retour


Puis sur l'application dans la déclaration global de ma fenêtre je fais appel au webservice :

Procedure MaFenêtre()

ST_Dossier est une structure
IdDossier est un entier sur 8 octets
Titre est une chaîne
Accroche est une chaîne
Image est un Buffer
RepDossier est une chaîne
Theme est une chaîne
ListePDF est un tableau de chaîne
FIN
gf_t_Dossier est un tableau de ST_Dossier
LOCAL
l_buf_retour est un Buffer

//Récupérer les dossiers thématiques dans un tableau
l_buf_retour = SITEMUT_WS_TEST.PG_RecupereEspaceSante(gsBaseSitmut)
Trace(l_buf_retour)
Désérialise(gf_t_Dossier,l_buf_retour,psdXML)
SI ErreurDétectée ALORS
Trace(ErreurInfo(errComplet))
FIN
Trace(TableauOccurrence(gf_t_Dossier))


Comme vous pouvez le voir j'ai des traces un peu partout pour essayer de comprendre ce qu'il se passe.
Dans Xcode je vois le log de la trace Trace(l_buf_retour) puis plus rien...
Le traitement se termine, l'application tourne correctement mais je n'ai rien dans le tableau de structure comme si la fonction désérialise faisait planter le reste du traitement.

En revanche sur Android ça fonctionne et en débug iOS sur le PC ça fonctionne aussi.

--
Cordialement
Mensaje modificado, 20,marzo 2019 - 10:55
Miembro registrado
950 mensajes
Popularité : +53 (63 votes)
Publicado el 20,marzo 2019 - 14:53
Bonjour,

Regarde du côté des chaînes ansi et Unicode, utilise une chaîne au lieu d'un buffer

Dans le webservice déclare la chaîne que tu renvoie en ansi et dans ton application la chaîne qui reçoit en ansi aussi

Jordan
Miembro registrado
27 mensajes
Popularité : +0 (2 votes)
Publicado el 21,marzo 2019 - 09:26
Merci pour la réponse.

Je viens de modifier ma structure dans le webservice et l'application mobile mais aucun changement.

ST_Dossier est une structure
IdDossier est un entier sur 8 octets
Titre est une chaîne ANSI
Accroche est une chaîne ANSI
Image est un Buffer
RepDossier est une chaîne ANSI
Theme est une chaîne ANSI
ListePDF est un tableau de chaîne ANSI
FIN

--
Cordialement
Mensaje modificado, 21,marzo 2019 - 09:27