我想解析XML来填充符合KVC的对象,但是我的解析器非常笨拙,它只是从XML属性/标记组装NSString并尝试通过KVC设置它们。

这适用于实际的字符串和数字(​​我相信),但我还需要设置日期。问题显然是解析器不知道该字符串代表一个日期,并且尝试使用原始KVC调用来放置它-之后,KVC框架抱怨类型不匹配(在日期字段上设置字符串)。

有没有一种编程方式可以“拦截”对KVC框架的调用,以便我可以更改正在设置的数据(通过NSDateFormatter运行日期字符串)?

我可以在解析器中添加一些智能,但是在这样做之前,是否还有其他众所周知的解决方案?

最佳答案

这可能不是完美的解决方案,但是...我想分享我的想法;)

因此,首先,在这里看看:Key-Value Coding - Validation。该文档描述了一种通过KVC设置变量来验证变量的巧妙方法。您可以通过以下方式利用此优势:

  • 首先为您的类变量
  • 实现KV验证方法
  • 设置您的值
  • 在您的验证方法中,检查它是否是日期/字符串/您想要的任何内容-并将其更改为正确的类型。

  • 这应该为确保正确的类型提供一个干净的实现。

    干杯,
    帕维尔

    10-08 06:59