我正在开发需要创建多个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/

10-11 09:01