如何在不更改原始.h或.m文件的情况下将私有变量添加到类中

时间:2012-01-30 13:32:06

标签: objective-c xcode

在Objective c中,这个计算机生成了来自coredata的.h文件。我不想改变那个文件。

但是,我希望每个对象都能引用coredata之外的其他对象

例如,在业务核心数据对象中,我想要一个表示业务核心数据对象的单元数据的引用。

我该怎么做?

5 个答案:

答案 0 :(得分:2)

为什么不继承?

NSManagedObject ->
  MONObjectWithAnIvar { var } ->
    MONModeledObject

答案 1 :(得分:1)

在.m文件中,您可以执行以下操作:

@interface YourClass() {
    @private:

    NSString *someVariable;
}
@end

@implementation YourClass

-(void)viewDidLoad {
    someVariable = @"asdf";
}

@end

答案 2 :(得分:1)

即使@private关键字不是绝对必要的,在上面的shawnwall的答案中使someVariable私有(因为私有字符已经通过在实现中的空类别接口声明内获得文件),你的问题似乎揭示了MVC模式的可能中断。什么样的数据对象可能与单元格中的某些东西有关?

答案 3 :(得分:1)

我认为您应该重新考虑您的设计,不能在不修改现有类的情况下将实例变量添加到现有类中。

可以在不使用类别修改原始源的情况下向现有类添加方法,但听起来并不像您想要做的那样。

答案 4 :(得分:1)

在obj-c中,您无法从外部修改现有类的成员。一种解决方法是将customCell的外部字典与arrow相关联。然后,您可以将arrow作为密钥customCell的对象。