NSURL в NSData (ошибка какао 256.)

Мне нужно сериализовать мой NSURL.

object – тип NSManagedObject.

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

Я получаю ошибку: (Ошибка какао 256.). Есть идеи? Что-то подсказывает мне, используя dataWithContentsOfURL: это не очень хорошая идея.

Обновить

Еще один вопрос, который по ошибке сделан как комментарий:

В чем разница между [NSData dataWithContentsOfURL:uri]; и [NSKeyedArchiver archivedDataWithRootObject:uri]; ?

Благодарю.

Во-первых, ваш код не пытается сериализовать объект NSURL, он пытается создать объект данных из данных по URL-адресу, возвращаемому как URI управляемого объекта.

Во-вторых, это никогда не сработает.

[NSData dataWithContentsOfURL:] попытается прочитать файл по определенному URL-адресу. URI управляемого объекта представляет объект, хранящийся в кусках со многими другими в постоянном файле, таком как база данных SQLite.

URI позволяет только контексту управляемого объекта идентифицировать конкретный объект в своем собственном хранилище. URI является тарабарщиной для чего-либо другого, кроме контекста.

NSManagedObject не реализует протокол NSCoder, поэтому управляемые объекты не могут быть сериализованы. Я не уверен, что вы хотите сделать здесь, но вы не можете этого сделать.

Как упоминалось здесь Ошибка какао 256 основных данных
код ошибки 256 может возникать, когда неизвестная ошибка возникает при чтении ресурса или в пути есть некоторые закодированные символы.

Мне кажется, вы пытаетесь получить данные из NSManagedObject . Следовательно, как @fluchtpunkt предложил вам искать http://cocoawithlove.com/2008/08/safely-fetching-nsmanagedobject-by-uri.html

Теперь [NSData dataWithContentsOfURL:uri]; к вашему второму вопросу [NSData dataWithContentsOfURL:uri]; возвращает данные для веб-url или локального ресурса в вашем каталоге документов. Пока [NSKeyedArchiver archivedDataWithRootObject:uri]; возвращает объект NSData содержащий кодированную форму графа объекта, для которого задан корневой объект.

попробуйте добавить «Http: //» раньше в ссылке

Interesting Posts
Давайте будем гением компьютера.