Объекты основных данных соответствуют объектам NSManagedObject
или подклассу NSManagedObject
, поэтому вы не можете просто сохранить URL-запросы напрямую. Что вы можете сделать, так это создать объект, называемый как SavedRequest
, который имеет свойство, представляющее запрос URL-адреса, и, возможно, некоторые другие подробности о запросе (какая бы другая информация вам ни понадобилась - дата, может быть?).
С NSURLRequest
соответствует NSCoding
, вы должны создать это свойство, используя «Трансформируемый» тип данных ядра. Core Data будет использовать NSCoding
для автоматического преобразования в/из NSData
по мере необходимости. Вы должны присвоить свойство NSURLRequest
и прочитать их обратно, а Core Data сохранит их как NSData
.
Учитывая ваше описание, Core Data может не иметь смысла. Похоже, вы просто хотите сохранить список запросов URL, а затем прочитать его и не нуждаетесь в дополнительных функциях, предоставляемых Core Data. Было бы проще разместить объекты NSURLRequest
в массиве, а затем сохранить этот массив в файл или по умолчанию для пользователя. Вы бы конвертировали в/из NSData
самостоятельно, но так как вы можете использовать NSCoding
, это легко.
Чтобы сохранить массив, который вы хотите сделать что-то вроде этого, предполагая, что массив называется myArray
, содержащие запросы URL и путь в filePath
:
BOOL success = [NSKeyedArchiver archiveRootObject:myArray toFile:filePath];
Вы хотите получить массив обратно, используя
NSArray *savedRequests = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
Вы не можете хранить 'NSURLRequest' непосредственно в Core Data. Вы можете хранить только экземпляры NSManagedObject. Вы можете создать объект, который позволяет вам хранить информацию, необходимую для воссоздания запроса. – Paulw11
'NSURLRequest' является' NS (Secure) Coding' Compliant, поэтому его следует перевести в 'NSData'. Это возможность. – Larme
@ Larme Вы говорите, что нам нужно преобразовать запрос NSURL в тип NSData. верный? Если он хранится в DB как NSData, чем мы знаем, какой запрос отправляется на сервер. Нужно ли расшифровывать NSData и отправлять на сервер? –