【发布时间】:2013-04-13 02:51:06
【问题描述】:
假设您在 Core Data 中为外卖餐厅建模。每个Restaurant 都应该有一个phoneNumber 属性,但会根据用户的街道地址而有所不同。不过不用担心,有一个 REST API 可以帮助您将街道地址和餐厅 ID 转换为电话号码。
我想对Restaurants 的phoneNumber 属性建模,以便联系REST API:
- 仅在需要时(即访问
phoneNumber属性时) - 尽可能不频繁
我正在考虑的策略是这样的:
- 在餐厅提供符合 KVO 的
phoneNumberLoaded布尔值 - 在卸载状态下访问
phoneNumber时返回nil - 开始异步加载
phoneNumber属性:- 第一次访问时
- 当用户调用
preloadPhoneNumber方法时
- 维护一个代表 API 接收预加载请求的队列,并将它们分批处理
- 在 API 调用返回时更新
phoneNumber,将phoneNumberLoaded设置为YES
我该去上班,还是有人有更好的策略?
【问题讨论】:
标签: objective-c core-data asynchronous properties transient