-4

これは私の機能です:

- (void) function{
    if (_app.error == nil) {  
        for (Window *window in _app.windows) {
            NSLog(@"test.");
        }

    }
    else {  
        NSLog(@"%@",[_app.error localizedDescription]);
    }
}

for ループに入って「test.」を出力する代わりに、else ステートメントから「(null)」が表示されます。私は何を間違っていますか?

+ (App *)loadApp {

NSString *filePath = [self dataFilePath:FALSE];
NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:filePath];
NSError *error;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&error];

App *app = [[App alloc] init];

if (doc == nil) app.error = error;

...etc
4

1 に答える 1

1

ロジックを前後に並べただけです。エラーがなければ続行します ( _app.error == nil):

- (void) function{
    if (_app.error == nil) {      // NOT !=
        for (Window *window in _app.windows) {
            NSLog(@"test.");
        }

    }
    else {  
        NSLog(@"%@",[_app.error localizedDescription]);
    }
}
于 2013-02-26T16:44:16.737 に答える