2012-01-30 11 views
1

Objective cでは、このコンピュータがcoredataから.hファイルを生成しています。私はそのファイルを変更したくありません。元の.hまたは.mファイルを変更せずにクラスにプライベート変数を追加する方法

はしかし、私はすべてのオブジェクトは、例えばcoredata

外のいくつかの他のオブジェクトへの参照を持つようにしたい、ビジネスコア・データ・オブジェクトには、私がそのビジネスコア・データ・オブジェクトを表すセルデータへの参照をしたいです。

どうすればよいですか?

+0

答えの1つについてチャックコメントを参照してください。生成されたコードファイルを変更することは、かなり期待されています。どうしてそんなことをしたくないのですか?それはどうしてできないのですか?すべてのテンプレートプロジェクトを見てください。あなたがその "生成された"コードを変更していないと、それほど遠くには行きません。 – jrturton

答えて

1

あなたの.mファイル内には、次の操作を行うことができます

@interface YourClass() { 
    @private: 

    NSString *someVariable; 
} 
@end 

@implementation YourClass 

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

@end 
+0

.mファイルは自動的に生成されるので変更したくない –

+0

クラスのカテゴリを作成し、そこに変数を追加することができます。 http://stackoverflow.com/questions/4146183/instance-variables-for-objective-c-categories – shawnwall

+2

@ JimThio:ファイルが自動的に生成されたという事実は、それを変更することを嫌うのはなぜですか?それは何とか不自然なことを意味するものではありません。 Xcodeは参考にあなたのための多くの定型文を生成します*あなたはそれを変更する予定です*。 – Chuck

1

@privateキーワードはプライベート文字がすでに取得しているため(上​​記shawnwallの答えにsomeVariableをプライベートにするために絶対に必要でない場合でも、実装ファイル内の空のカテゴリインタフェース宣言の中にあることによって)、あなたの質問はMVCパターンの中断の可能性を明らかにしているようです。実際に、データオブジェクトがセル内の何かに関係しているのでしょうか?

+0

さて、私はデータベースでcustomCellを使用しました。カスタムセルには、ビジネスを指す矢印が含まれています。誰かがiPhoneを動かすと、矢印を更新して画像を回転させたい。つまり、UIImageへの参照が必要です。 –

1

私はあなたのデザインを再考すべきだと思います。インスタンス変数を変更せずに既存のクラスに追加することはできません。

カテゴリを使用して元のソースを変更せずに既存のクラスにメソッドを追加することは可能ですが、それはあなたがしたいようには聞こえません。

2

なぜ継承しないのですか?

NSManagedObject -> 
    MONObjectWithAnIvar { var } -> 
    MONModeledObject 
1

obj-cでは、既存のクラスのメンバーを外部的に変更することはできません。回避策の1つは、外部辞書customCellarrowにリンクしたままにすることです。次に、キーcustomCellのオブジェクトとしてarrowを取得できます。

関連する問題