Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标C:对<;开始/结束外观转换的不平衡调用;NotFoundViewController:0x8888a80>;_Objective C_Segue_Mknetworkkit - Fatal编程技术网

Objective c 目标C:对<;开始/结束外观转换的不平衡调用;NotFoundViewController:0x8888a80>;

Objective c 目标C:对<;开始/结束外观转换的不平衡调用;NotFoundViewController:0x8888a80>;,objective-c,segue,mknetworkkit,Objective C,Segue,Mknetworkkit,我正在构建一个天气应用程序。在某种情况下,我必须执行segue并更改视图控制器。 我使用MKNetworkKit。如果API没有返回值,我将触发segue。在这个屏幕上,我还创建并显示了一个动画。 这是我的密码: - (void)proccessCompletedWithSuccess:(BOOL)success withResponse: (NSArray *)response; { if(success){ //do something }else{

我正在构建一个天气应用程序。在某种情况下,我必须执行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
我得到了这个错误:
对开始/结束外观转换的不平衡调用。

更新: 我迟迟没有试过performSelector

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

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

但是没有任何变化。

性能检查是否被多次调用?你能试着记录一下它被调用了多少次吗?它被调用了两次它被调用了两次?然后你犯了错误…我知道这是错误,但无法解决。。找不到为什么触发两次segue。我的xibs有这个问题。对web服务的异步调用正在触发UINavigationController推送/弹出。当web服务返回数据时,用户可以点击后退按钮,这将是第二次转换。这导致了开始和结束的不平衡。naviationController不进行队列转换,它只是在获取它们时激发它们。