0

私は天気アプリケーションを構築しています。状態では、セグエを実行してView Controllerを変更する必要があります。MKNetworkKit を使用しています。API が値を返さない場合は、セグエをトリガーします。この画面では、アニメーションも作成して表示します。これが私のコードです:

- (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