对于未输入的循环

时间:2013-02-26 17:53:19

标签: ios objective-c

所以我在函数中得到了这个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;

2 个答案:

答案 0 :(得分: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个窗口

答案 1 :(得分: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;