J'ai réussi à télécharger un fichier byte [] (NSData) en utilisant l'ODataSDK pour Objective-C en configurant mon service OData pour fournir un Stream Service Provider. J'ai démarré à partir d'un projet Visual Studio dont mes tables SQL Server étaient mappées avec Entity Framework, de sorte qu'Odata exposait déjà les entités à enregistrer/lire. Il est important de noter que l'entité qui possède l'octet de fichier doit avoir l'attribut m: hasStream défini dans le fichier Entity Framework .edmx, ce qui peut être fait uniquement en modifiant manuellement le fichier XML (consultez ce tutoriel, qui est en trois parties: here's the first)
Une fois que vous le faites, le ODataSDK pour ObjC fournit les méthodes setSaveStream
(et getReadStream
) pour enregistrer (et lire) le fichier NSData (bien que j'ai eu quelques problèmes pour obtenir getReadStream à travailler, mais il peut être dû au fait que c'était ma première mise en œuvre d'un tel service).
Si vous le téléchargement de fichiers de plus de 64Ko, un coup d'oeil à cette réponse pour configurer correctement votre web.config: https://stackoverflow.com/a/6907582/423816
Bien sûr, vous devez également utiliser les méthodes addObject:
et saveChanges:
, mais c'est ce que vous faire avec n'importe quelle autre entité OData.
Espérons que cela aide