我正在开发需要创建多个NSURLRequest的iPad应用程序。
什么时候失败,我需要再次触发该URL请求。
我有三种类型的请求(创建学校,创建楼层和创建房间),其中包含多个与创建请求不同的参数。
有一种重试方法,当存在与第一个请求创建的相同对象的互联网可用时,该方法可以触发。
因此,我试图创建三个表,并试图将所有参数及其状态存储起来。
是否可以使用NSURLRequest创建单个表,而不考虑CREATE REQUEST?
最佳答案
核心数据实体对应于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];
关于ios - 我们可以将NSURLRequest直接存储到Core Data中吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41610596/