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