NSURL dans NSData (erreur Cocoa 256.)

Je dois sérialiser mon NSURL.

object est le type de NSManagedObject.

NSURL *objectURIRepresentation = [[object objectID] URIRepresentation]; NSError *error = nil; NSData *objectIDData = [NSData dataWithContentsOfURL:objectURIRepresentation options:NSDataReadingMapped error:&error]; 

Je reçois une erreur: (erreur cacao 256.). Des idées? Quelque chose me dit, en utilisant dataWithContentsOfURL: n'est pas une bonne idée.

Mettre à jour

Une autre question qui est mise en commentaire par erreur:

Quelle est la différence entre [NSData dataWithContentsOfURL:uri]; et [NSKeyedArchiver archivedDataWithRootObject:uri]; ?

Merci.

Tout d'abord, votre code ne tente pas de sérialiser un object NSURL, il tente de créer un object de données à partir des données à l'URL renvoyé en tant qu'URI d'un object géré.

Deuxièmement, cela ne marchera jamais.

[NSData dataWithContentsOfURL:] va essayer de lire un file sur une URL particulière. L'URI d'un object géré représente un object stocké en morceaux avec beaucoup d'autres dans un file persistant comme une database SQLite.

L'URI permet uniquement à un context d'object géré d'identifier un object particulier dans son propre magasin. L'URI est du charabia pour autre chose que le context.

NSManagedObject n'implémente pas le protocole NSCoder de sorte que les objects gérés ne peuvent pas être sérialisés. Je ne suis pas sûr de ce que vous voulez faire ici, mais vous ne pouvez pas le faire de cette façon.

Comme mentionné ici l' erreur Cocoa 256 données de base
Le code d'erreur 256 peut se produire lorsqu'une erreur inconnue est survenue lors de la lecture de la ressource ou que le path comporte des caractères codés.

Ce que je NSManagedObject c'est que vous essayez d'get datatables de NSManagedObject . Par conséquent, comme @fluchtpunkt suggéré que vous devriez searchr http://cocoawithlove.com/2008/08/safely-fetching-nsmanagedobject-by-uri.html

[NSData dataWithContentsOfURL:uri]; maintenant à votre deuxième question [NSData dataWithContentsOfURL:uri]; renvoie des données pour une URL Web ou une ressource locale dans votre directory de documents. While [NSKeyedArchiver archivedDataWithRootObject:uri]; renvoie l'object NSData contenant la forme codée du graphe d'object dont l'object racine est donné.

essayez d'append "Http: //" avant dans le lien