Objective-C で見られるいくつかの動作に困惑しています。
次のような方法があります。
-(void)showFormWithId:(NSString*)formId andMode:(int)mode
{
HPSModelForm* model = [HPSDbUtilities getForm:formId];
HPSFormController* formVC = [ [ HPSFormController alloc ] init ];
[(UINavigationController*) self.view.window.rootViewController pushViewController:formVC animated:YES];
}
HPSFormController クラス内で、私の実装には以下が含まれます。
@implementation HPSFormController
NSArray* _arrayOfPageNosWithSummaryElements;
つまり、_arrayOfPageNosWithSummaryElements はプロパティではありませんが、HPSFormController クラス内の任意のメソッドから見える ivar です。ヘッダーファイルではまったく宣言されていません。
初めて showFormWithId を呼び出すと、_arrayOfPageNosWithSummaryElements は nil になります。ただし、showFormWithId をもう一度呼び出すと、_arrayOfPageNosWithSummaryElements は nil ではなく、HPSFormController の前のインスタンスの値を持っているように見えます。私はこれを理解していません.formVCのスコープはshowFormWithIdメソッドであるため、2回目にshowFormWithIdを呼び出すと、_arrayOfPageNosWithSummaryElementsを初期化せずにnilに設定して、HPSFormControllerの完全に新しいインスタンスを作成する必要がありますか?
私は何を間違っていますか?ありがとう。