0

我正在构建一个天气应用程序。在某种情况下,我必须执行 segue 并更改视图控制器。我使用 MKNetworkKit。如果 API 没有返回值,我会触发 segue。在这个屏幕中,我还创建并显示了一个动画。这是我的代码:

- (void)proccessCompletedWithSuccess:(BOOL)success withResponse: (NSArray *)response;
{
    if(success){
       //do something
    }else{
       [self performSegueWithIdentifier:@"NotFound" sender:self];
    }
}   

GetWeather.m 文件:

#import "GetWeather.h"

@implementation GetWeather

-(MKNetworkOperation*)
urlForApi:(NSString*) urlForApi
path:(NSString*) path
params:(NSMutableDictionary*)params
completionHandler:(ApiResponseBlockForWeather) completionBlock
errorHandler:(MKNKErrorBlock) errorBlock {

    MKNetworkOperation *op = [self operationWithPath:path
                                              params:params
                                          httpMethod:@"GET"];

    [op addCompletionHandler:^(MKNetworkOperation *completedOperation)
     {
         NSArray* returningArray = [completedOperation responseJSON];

         NSString* description =[[[[returningArray valueForKey:@"query"]
                                   valueForKey:@"results"]
                                  valueForKey:@"channel"]
                                 valueForKey:@"description"];

         if ([description isEqualToString:@"Yahoo! Weather Error"]) {

             [self.delegate proccessCompletedWithSuccess:NO withResponse:nil];

         }else{
             [self.delegate proccessCompletedWithSuccess:YES withResponse:returningArray];
         }

         if([completedOperation isCachedResponse]) {
             //NSLog(@"weather response from cache");
         }
         else {
             //NSLog(@"weather response from server");
         }
         //   NSLog(@"%@",[completedOperation url]);
         completionBlock(returningArray);

     }errorHandler:^(MKNetworkOperation *errorOp, NSError* error) {

         errorBlock(error);
         [self.delegate proccessCompletedWithSuccess:NO withResponse:nil];
     }];

    [self enqueueOperation:op];

    return op;
}

@end

我得到了这个错误:Unbalanced calls to begin/end appearance transitions for <NotFoundViewController: 0x8888a80>.

更新: 我尝试了 performSelector 延迟。

[self performSelector:@selector(performNotFound) withObject:nil afterDelay:1.0f];

-(void)performNotFound{
    [self performSegueWithIdentifier:@"NotFound" sender:self];
}

但什么都没有改变。

4

0 回答 0