因此,我知道 Objective-C 中的类别可用于向类添加方法,而无需子类化。我也明白这些类别不能用于向类添加实例变量。
我做了一点关于类扩展的阅读,它可用于添加实例变量,但我不明白如何使用类扩展来修改现有的类,例如 NSData。
我的问题如下:
我有一个包含 NSURL 和 NSData 的核心数据模型。NSData 显示 NSURL 的数据。当视图需要显示数据时,我会进行以下检查: --- 如果 [NSData bytes] > 0,则显示 NSData。--- 否则,在 NSURL 获取数据并在返回时显示数据
很简单。但是,当 NSURL 更新时,我遇到了问题。因此,如果我用新图像修改 NSURL 路径,因为 [NSData bytes] 已经大于 0,我不会进行额外调用来获取新图像。
我想做的是向 NSData 添加一个名为 URLKey 的实例变量,该变量将保存有关数据来源的信息。我不能继承 NSData,因为我使用的是 CoreData。
有谁知道一些简单的解决方案?也许我对类扩展的理解存在差距,或者也许没有简单的方法。