所有
我有一个应用程序(目前正在使用Core Data),它接收信用卡信息,将其发送到我的服务器,获得响应(即授权,拒绝,错误等)。如果获得授权,该卡将与钱包中的“插槽”号一起保存。由于以下原因,服务器的工作方式在使用核心数据时有点困扰我;让我把它画出来。
信用卡有5个可用的“插槽”。
当用户添加信用卡时,会将其保存到“广告位”并为其分配值1-5以跟踪信用卡。
现在,使用Core Data困扰我的问题是删除卡片。我希望这个号码保持不变,我希望卡片保持在同一个口袋中,如下:
...并且下次添加卡时,需要让服务器知道它将“插槽”2.如何实现此类跟踪?
提前致谢。
如果我太模糊(我希望我不是),请发表评论,我会在几分钟内回复细节。
编辑:手机实际上并不存储信用卡,而是存储插槽号码。服务器已保存信用卡,这就是插槽号码的原因。
答案 0 :(得分:3)
首先,您是否考虑过使用Keychain来存储敏感信息而不是Core Data?
其次,如果你坚持使用核心数据并且你需要坚持订购,只需在名为“slot_id”的实体中添加一个额外的属性并将信息粘贴在那里。然后告诉服务器下一张卡应该存储到下一个第一个空槽中。如果您通过HTTP与服务器通信,则可以使用POST参数将其命令存储到空插槽中。
如何确定插槽是否为空?
使用排序描述符按slot_id排序。然后,将排序与实际自然排序进行比较。
what you should encounter: 1 2 3 4 5 6 7
what you encounter: 1 2 3 5 6 7
显然,缺少4,所以一旦发现差异,就会中止循环。
或者,跟踪单独实体或NSUserDefaults中的“最小可用插槽”,以优化搜索算法。或者甚至将“清空的插槽”跟踪为单独的实体,然后按其slot_ids排序。
答案 1 :(得分:1)
只需解析列表,当您找到描述为“// empty”的列表时,将卡插入该插槽。