0

だから私はこれを関数のforループで取得しましたが、入力されることはありません、

   for (Window *window in _app.windows) {
                        NSLog(@"test.");

    }

私は初心者なので、どこでこれをデバッグし始めて、どこで問題が発生するかを確認できますか?

編集 これは別のクラスにあります

(ViewControllerで呼び出す関数(loadApp)にあります。たとえば、self.app = [MyClass loadApp];、上記のコードもViewControllerにあります。

        Window *window = [[Window alloc] initWithName:title subtitle:subtitle number:number ident:ident type:type chapternumber:chapternumber icon:icon text:text img:img question:question answerFormat:answerFormat answerLength:answerLength tip1:tip1 tip2:tip2 tip3:tip3 tip1Answer:tip1Answer tip2Answer:tip2Answer tip3Answer:tip3Answer];

    [app.windows addObject:window];

}

return app;
4

2 に答える 2

2

以下を試してください

if(!_app)  {
  NSLog(@"app is nil");
}
else if(!_app.windows) {
  NSLog(@"windows is nil");
}
else  {
  NSLog(@"there are %d windows", [_app.windows count]);
}

ウィンドウが 0 個あることがわかると思います

于 2013-02-26T17:59:47.097 に答える
0

同じ変数にアクセスしていることを確認する必要があります。それが、あなたが得ている他のすべてのコメントと回答の要点です。このような設定が必要です。アプリがこのように正確に設定されていない可能性があることに注意してください。これは従うべき一般的な構造です:

//myViewController.h
#import "WindowClass.h"
#import "AppClass.h"
@property (strong, nonatomic) AppClass *app;


//myViewController.m
#import "myViewController.h"
@synthesize app;

(id)init....{
   //...init code here
   //Synthesized objects must be initialized before they are accessed!
   self.app = [[AppClass alloc] init];
   return self;
}
(void)loadApp {
   WindowClass *aWindow = [[WindowClass alloc] init];
   [self.app.windowArray addObject:aWindow];
   return;
}
(void)loopFunction {
   for (WindowClass *window in self.app.windowArray) {
      NSLog(@"test.");
   }
   return;
}

//AppClass.h
@property (strong, nonatomic) NSArray *windowArray;

//AppClass.m
#import "AppClass.h"
@synthesize windowArray;
于 2013-02-26T18:54:32.797 に答える