0

プロジェクトを作成しましたが、正常に動作します。ここで、いくつかのテスト ケースを作成する必要があります。そこで、SenTestingKit を追加してセットアップしました。次に、クラスのインスタンスを作成し、そのクラス内のいくつかの変数の値を変更しようとすることで、テスト ケースの作成を開始しました。問題は、いくつかの変数をローカル (デフォルトで「保護」) として宣言したため、これらの変数を変更できなかったことです。各変数に @property(nonatomic,retain) を追加せずにインスタンス変数の値を変更してテストする方法はありますか? 前もって感謝します..

4

3 に答える 3

0

私の目的は、変数に@property()を追加せずにインスタンス変数を変更することでした。私は次のようなインスタンスメソッドを追加することでそれを行いました

-(void)setValueOfArrayCount:(int)newValue{

     arrayCount = newValue;
}

-(int)getValueOfArrayCount{

     return arrayCount;
}

そして、このクラスの外部からこれらのメソッドを呼び出すことができます。

于 2012-03-18T06:55:43.450 に答える
0

@public を使用して公開することができます。object->member を使用してメンバーにアクセスできます。

于 2012-03-16T08:03:31.380 に答える
0

Objective-C は非常に内省的で再帰的な言語です。変数を public として設定しなくても、すべての変数にアクセスして変更できます。

実際にセッターを持っている(しかし保護されている)場合は、次のように何かをするだけです

[myObject performSelector:@selector(setMyiVar:) withObject:value];

セッターがない場合は、いつでもランタイム メソッドを使用して ivar にアクセスし、class_getInstanceVariable. http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.htmlで確認してください。

それが役に立てば幸い!

于 2012-03-16T09:20:08.337 に答える