0

私はこれでみんなを困惑させるつもりだと思います。

アプリに入る方法が 2 つある iOS プロジェクトがあります (画像を参照)。

  1. オープニング画面 ----> サインイン (メール/パスワード) ビュー ------> MainView
  2. オープニング画面---->サインアップビュー----->プロファイルの作成----->セキュアコードビューを入力----->メインビュー

1 番目のパスは決して失敗せず、アプリは完全に機能します。

2 つ目 (#2) はそれほど多くありません。パス #2 では、ユーザーが MainView にスローされると、「findClosest」を完全に機能するレストキット呼び出しと呼びます。"findClosest" が 2 回目に呼び出されると、蒸気に変わります。つまり、成功したブロックと失敗したブロックは呼び出されません。charles を実行しましたが、呼び出しがサーバーにヒットして戻ってきましたが、成功ブロックまたは失敗ブロックが呼び出されませんか? 次に、「findClosest」への連続する各呼び出しが蒸気に変わります。

アプリをシャットダウンして再起動すると、ユーザーは上記のパス #1 を通過し、アプリは完全に機能します (別名 findClosest)。

=== これが "findClosest" メソッドです ==================================

 -(void)findClosestThingWithIn:(NSNumber *)distance
                     latitude:(NSNumber *)lat
                    longitude:(NSNumber *)lng
                      limitTo:(NSNumber *)limit
                         type:(NSString*)thingType
{


//Setting these in here if NOT passed in as we have locationManager in restengine
if(nil == lat || nil == lng) {

    //TODO: uncomment this.
    lat = [NSNumber numberWithDouble:self.locationManager.location.coordinate.latitude];
    lng = [NSNumber numberWithDouble:self.locationManager.location.coordinate.longitude];
}

NSAssert(lat, @"Cannot find an Thing without a lat");
NSAssert(lng, @"Cannot find an Thing without a lng");
NSAssert(self.accessToken, "TOken cannot be nil");
NSAssert(self.api_key, "TOken cannot be nil");


if(nil == lat || nil == lng) {
    return;
}

if(self.accessToken && self.api_key) {

    //Delete all previous things as we always want a fresh list
   // [self performSelectorOnMainThread:@selector(deleteAllObjectsWithEntityName:) withObject:@"Thing" waitUntilDone:NO];
    //[self deleteAllObjectsWithEntityName:@"Thing"];
    RKObjectManager *mgr = [RKObjectManager sharedManager];
    [mgr getObject:nil
                                           path:@"v3/things/closest.json"
                                     parameters:@{
                                                     @"auth_token" : self.accessToken,
                                                     @"api_key" : self.api_key,
                                                     @"lat" : ObjectOrNull(lat),
                                                     @"lng" : ObjectOrNull(lng),
                                                     @"max_distance" : ObjectOrNull(distance),
                                                     @"limit" : ObjectOrNull(limit),
                                                     @"type" : thingType
                                                    }
                                        success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
                                            RKLogInfo(@"Find closest Things complete refresh view...");

                                            [[NSNotificationCenter defaultCenter] postNotificationName:kFoundClosestThingss object:[NSNumber numberWithUnsignedInteger:[mappingResult count]] ];

                                            if([mappingResult count] <= 0) {

                                                [UIAlertView alertViewWithTitle:@"No available drivers" message:@"All thingss are currently busy. Please try again later."];

                                            }

                                        }
                                        failure:^(RKObjectRequestOperation *operation, NSError *error) {



                                            RKLogError(@"Find closest Things failed with error: %@", error);
                                            [UIAlertView alertViewWithTitle:@"unavailable" message:@"Error. x005"];
                                        }];

    DLog(@"");

}
DLog(@"");
}

================================================== =======

問題が #2 パスであり、ストーリーボードのプッシュであるかどうかはわかりません。それが本当に唯一のコードの違いなのでしょうか? この問題を解決するために、[コードの入力] ビューから MainView へのセグエを削除し、代わりに [オープニング画面] に送り返して #1 のパスを取るようにしましたが、同じバグが発生しますか?

ここに画像の説明を入力

Restkit ログを添付します ( ...closest.json への両方の呼び出しが成功していることがわかります) が、成功ブロックが呼び出されることはありません。

2013-06-10 12:07:40.138 StatMedical[22532:907] -[STOpeningScreenViewController introductionDidFinishWithType:] Did Finish Introduction By Skipping It
2013-06-10 12:08:08.835 StatMedical[22532:3813] I restkit.network:RKHTTPRequestOperation.m:154 POST 'http://my.herokuapp.com/v3/users.json'
2013-06-10 12:08:09.839 StatMedical[22532:611b] I restkit.network:RKHTTPRequestOperation.m:185 POST 'http://my.herokuapp.com/v3/users.json' (201 Created) [1.0041 s]
2013-06-10 12:08:09.863 StatMedical[22532:907] I app:STRestEngine.m:1328 Load complete refresh view...
2013-06-10 12:08:22.931 StatMedical[22532:3c3b] I restkit.network:RKHTTPRequestOperation.m:154 POST 'http://my.herokuapp.com/v3/users/approve_by_code.json'
2013-06-10 12:08:23.054 StatMedical[22532:611b] I restkit.network:RKHTTPRequestOperation.m:185 POST 'http://my.herokuapp.com/v3/users/approve_by_code.json' (201 Created) [0.1224 s]
2013-06-10 12:08:23.074 StatMedical[22532:3c3b] I restkit.network:RKHTTPRequestOperation.m:154 POST 'http://my.herokuapp.com/v3/sessions/login.json'
2013-06-10 12:08:23.495 StatMedical[22532:611b] I restkit.network:RKHTTPRequestOperation.m:185 POST 'http://my.herokuapp.com/v3/sessions/login.json' (201 Created) [0.4213 s]
2013-06-10 12:08:23.514 StatMedical[22532:907] __61-[STRestEngine getSessionWithEmail:password:success:failure:]_block_invoke Mapped the session: <Session: 0x1dc73790>
2013-06-10 12:08:23.539 StatMedical[22532:907] __50-[STEnterCodeViewController tryToEstablishSession]_block_invoke Got a session!
2013-06-10 12:08:23.867 StatMedical[22532:907] -[STMainNavViewController mapView:regionDidChangeAnimated:] The location is <+17.69808269,-39.99999000> +/- 0.00m (speed -1.00 mps / course -1.00) @ 6/10/13, 12:08:23 PM Eastern Daylight Time
2013-06-10 12:08:23.905 StatMedical[22532:907] -[STMainNavViewController mapView:regionDidChangeAnimated:] The location is <+17.69808269,-39.99999000> +/- 0.00m (speed -1.00 mps / course -1.00) @ 6/10/13, 12:08:23 PM Eastern Daylight Time
2013-06-10 12:08:23.974 StatMedical[22532:907] -[STMainNavViewController mapView:regionDidChangeAnimated:] The location is <+37.17818069,-96.05457069> +/- 0.00m (speed -1.00 mps / course -1.00) @ 6/10/13, 12:08:23 PM Eastern Daylight Time
2013-06-10 12:08:25.877 StatMedical[22532:907] -[STMainNavViewController mapView:regionDidChangeAnimated:] The location is <+39.95912667,-75.15170666> +/- 0.00m (speed -1.00 mps / course -1.00) @ 6/10/13, 12:08:25 PM Eastern Daylight Time
2013-06-10 12:08:27.876 StatMedical[22532:3c3b] __47-[STMainNavViewController findNearByThings]_block_invoke app delegate is <STAppDelegate: 0x1c585490>
2013-06-10 12:08:27.885 StatMedical[22532:3c3b] -[STRestEngine findClosestThingsWithIn:latitude:longitude:limitTo:type:] 
2013-06-10 12:08:27.886 StatMedical[22532:3c3b] -[STRestEngine findClosestThingsWithIn:latitude:longitude:limitTo:type:] 
2013-06-10 12:08:27.889 StatMedical[22532:3c3b] I restkit.network:RKHTTPRequestOperation.m:154 GET 'http://my.herokuapp.com/v3/Things/closest.json?api_key=ABC&auth_token=MZNYg9v8ccHssJ6WbSSy&lat=39.95912667093674&limit=15&lng=-75.15170666043032&max_distance=20&type=ALS'
2013-06-10 12:08:27.997 StatMedical[22532:611b] I restkit.network:RKHTTPRequestOperation.m:185 GET 'http://my.herokuapp.com/v3/Things/closest.json?api_key=ABC&auth_token=MZNYg9v8ccHssJ6WbSSy&lat=39.95912667093674&limit=15&lng=-75.15170666043032&max_distance=20&type=ALS' (200 OK) [0.1074 s]
2013-06-10 12:08:28.892 StatMedical[22532:907] I app:STRestEngine.m:901 Find closest Things complete refresh view...
2013-06-10 12:08:28.904 StatMedical[22532:907] -[STMainNavViewController updateETALabel:] 
2013-06-10 12:08:28.905 StatMedical[22532:907] -[STMainNavViewController handleFoundThings:] 
2013-06-10 12:08:50.371 StatMedical[22532:907] self.mode is currently 0
2013-06-10 12:08:50.373 StatMedical[22532:907] self.mode is now set to 1
2013-06-10 12:08:50.373 StatMedical[22532:907] self.mode is now permanently set to 1
2013-06-10 12:08:50.378 StatMedical[22532:3c3b] __47-[STMainNavViewController findNearByThings]_block_invoke app delegate is <STAppDelegate: 0x1c585490>
2013-06-10 12:08:50.389 StatMedical[22532:3c3b] -[STRestEngine findClosestThingsWithIn:latitude:longitude:limitTo:type:] 
2013-06-10 12:08:50.390 StatMedical[22532:3c3b] -[STRestEngine findClosestThingsWithIn:latitude:longitude:limitTo:type:] 
2013-06-10 12:08:50.394 StatMedical[22532:8337] I restkit.network:RKHTTPRequestOperation.m:154 GET 'http://my.herokuapp.com/v3/Things/closest.json?api_key=ABC&auth_token=MZNYg9v8ccHssJ6WbSSy&lat=39.95912667093674&limit=15&lng=-75.15170666043032&max_distance=20&type=BLS'
2013-06-10 12:08:50.737 StatMedical[22532:611b] I restkit.network:RKHTTPRequestOperation.m:185 GET 'http://my.herokuapp.com/v3/Things/closest.json?api_key=ABC&auth_token=MZNYg9v8ccHssJ6WbSSy&lat=39.95912667093674&limit=15&lng=-75.15170666043032&max_distance=20&type=BLS' (200 OK) [0.3432 s]

// UPDATE ////// そこで、VERIFY ACCOUNT と MainView の間のセグエを削除しました。追加のボタンが追加されたので、VERIFY ACCOUNT ビューでコードを送信すると、「Get Started」という新しいボタンが表示されます。これをクリックすると、巻き戻されて SIGN IN ビューに戻ります。このアクションが実行されると、MainView が読み込まれますが、MainView の dealloc が呼び出されますか?

この問題全体がナビゲーション コントローラーの問題によるものなのだろうか? これが私のアプリの紹介全体です。

ここに画像の説明を入力

4

0 に答える 0