Objective c [lazy-]异步加载核心数据属性的策略

Objective c [lazy-]异步加载核心数据属性的策略,objective-c,core-data,asynchronous,properties,transient,Objective C,Core Data,Asynchronous,Properties,Transient,假设您正在核心数据中为外卖餐厅建模。每个餐厅都应该有一个电话号码属性,但根据用户的街道地址不同而有所不同。不过,不用担心,有一个RESTAPI可以帮助您将街道地址和餐厅ID转换为电话号码 我想对餐厅的phoneNumber属性建模,以便联系REST API: 仅在需要时(即当访问phoneNumber属性时) 尽可能少地 我考虑的策略是这样的: 在餐厅提供兼容KVO的phoneNumberLoadedboolean 在卸载状态下访问phoneNumber时返回nil 开始异步加载phoneNum

假设您正在核心数据中为外卖餐厅建模。每个
餐厅
都应该有一个
电话号码
属性,但根据用户的街道地址不同而有所不同。不过,不用担心,有一个RESTAPI可以帮助您将街道地址和餐厅ID转换为电话号码

我想对
餐厅的
phoneNumber
属性建模,以便联系REST API:

  • 仅在需要时(即当访问
    phoneNumber
    属性时)
  • 尽可能少地
  • 我考虑的策略是这样的:

  • 在餐厅提供兼容KVO的
    phoneNumberLoaded
    boolean
  • 在卸载状态下访问
    phoneNumber
    时返回
    nil
  • 开始异步加载
    phoneNumber
    属性:
  • 第一次访问时
  • 当用户调用
    preload-phonenumber
    方法时
  • 维护一个代表API接收预加载请求的队列,并对它们进行批处理
  • 当API调用返回时更新
    phoneNumber
    ,将
    phoneNumberLoaded
    设置为
    YES

  • 我该开始工作了,还是有人有更好的策略?

    我不知道这是不是你的意思,但我就是这么看的:

    餐厅