2011-10-27 6 views
0

私は何をすべきかアドバイスが必要です。iOS5の古いアプリケーションに関する問題

私はいくつかのアプリケーションをApp Storeに持っており、以前のすべてのiOSでテストされ、完全に機能しています。しかし、今では私のデバイスをiOS5にアップデートすると、インターネットへの接続を要求し、現在の場所で地図を表示する警告表示項目で、予期せずクラッシュするようになったものもあります。

私は開発経験がありませんので、何かアドバイスが必要ですか? iOS5の最終版では、これらのことはそれ自体で修正されるかどうかはわかりません。

ありがとうございました。

OKゾンビをひっぱって問題を起こす方法を見つけました。

- (void) alertView: (UIAlertView*) alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{ 
    NSLog(@" Button PRESSED: %d", buttonIndex); 
    [alertView release]; 



    if (buttonIndex == 1) { 
     BOOL noConnectionAvailable = NO; 
     BOOL hasParentalLimit = NO; 

     switch (lastSelectedItem.itemType) { 
      case RestaurantItemTypeAddress : { 
       if ([NetworkHelper connectedToNetwork] == YES) { 
        AddressController *mapController = [[AddressController alloc] initWithNibName:@"AddressController" bundle:nil restaurant:restaurant]; 
        mapController.title = restaurant.res_title; 
        [self.navigationController pushViewController:mapController animated:YES]; 
        [mapController release]; 
       } else 
        noConnectionAvailable = YES; 

       break; 
      } 
      case RestaurantItemTypeReservationEmail : { 
       if ([NetworkHelper connectedToNetwork] == YES) { 
        MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
        picker.mailComposeDelegate = self; 

        [picker setSubject:@"Reservation"]; 
        // Set up recipients 
        NSArray *toRecipients = [NSArray arrayWithObject:lastSelectedItem.itemTextContent];    
        [picker setToRecipients:toRecipients]; 

        // Fill out the email body text 
        NSString *emailBody = @""; 
        [picker setMessageBody:emailBody isHTML:NO]; 

        [self presentModalViewController:picker animated:YES]; 
        [picker release]; 

        [self.tableView deselectRowAtIndexPath:lastSelectedIndexPath animated:YES]; 
       } else 
        noConnectionAvailable = YES; 

       break; 
      } 
      case RestaurantItemTypeReservationForm : { 
       if ([NetworkHelper connectedToNetwork] == YES) { 
        if ([NetworkHelper canOpenUrl:lastSelectedItem.itemTextContent]) { 
         WebViewController *wvc = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil urlStr:lastSelectedItem.itemTextContent]; 
         wvc.title = restaurant.res_title; 
         [self.navigationController pushViewController:wvc animated:YES]; 
         [wvc release]; 
        } else hasParentalLimit = YES; 
       } else 
        noConnectionAvailable = YES; 

       break; 
      } 
      case RestaurantItemTypeWeb : { 
       if ([NetworkHelper connectedToNetwork] == YES) { 
        if ([NetworkHelper canOpenUrl:lastSelectedItem.itemTextContent]) { 
         WebViewController *wvc = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil urlStr:lastSelectedItem.itemText]; 
         wvc.title = restaurant.res_title; 
         [self.navigationController pushViewController:wvc animated:YES]; 
         [wvc release]; 
        } else hasParentalLimit = YES; 
       } else 
        noConnectionAvailable = YES; 

       break; 
      } 

     } 

     if (noConnectionAvailable == YES) { 
      UIAlertView* newAlert = [[UIAlertView alloc] initWithTitle:@"Jesolo Official Guide" 
                   message:@"Nessuna connessione disponibile." 
                   delegate:self 
                cancelButtonTitle:@"OK" 
                otherButtonTitles:nil]; 
      [newAlert show]; 
     } 

     if (hasParentalLimit == YES) { 
      UIAlertView* newAlert = [[UIAlertView alloc] initWithTitle:@"Jesolo Official Guide" 
                   message:@"Navigazione su Web non consentita." 
                   delegate:self 
                cancelButtonTitle:@"OK" 
                otherButtonTitles:nil]; 
      [newAlert show]; 

     } 

    } 

    [self.tableView deselectRowAtIndexPath:lastSelectedIndexPath animated:NO]; 

} 

ログは、iOS4とiOS5では異なります。 iOS5をオンそれは言った:

2011-11-04 16:26:28.550 Jesolo-EN[5693:207] Button PRESSED: 1 
2011-11-04 16:26:28.776 Jesolo-EN[5693:207] *** -[NSIndexPath isEqual:]: message sent to deallocated instance 0xe6b6fc0 
sharedlibrary apply-load-rules all 
Current language: auto; currently objective-c 
warning: Attempting to create USE_BLOCK_IN_FRAME variable with block that isn't in the frame. 
(gdb) 

とiOS4を上言った:

2011-11-04 16:28:08.087 Jesolo-EN[5859:207] Button PRESSED: 1 
2011-11-04 16:28:08.162 Jesolo-EN[5859:207] *** -[UIAlertView release]: message sent to deallocated instance 0x78c4940 
sharedlibrary apply-load-rules all 
Current language: auto; currently objective-c 
(gdb) 

は私が、私はそれらを使用する前に、私はデータを解放するが、私は有効ゾンビせずにアプリケーションを実行すると、それはiOS4を上問題なく動作していることを理解iOS5は1回実行してから10回はクラッシュします。

+3

残念ながら、もう一度テストして問題を解決する以外の方法はありません。問題の発生元を見つけて解決します。最終版ではほとんど修正されないでしょう。 – Daniel

+0

私のアプリはすべて、セクターで分割されたいくつかの溺れたマップを持っていると、ビューの切り替えに問題があります。セクタをクリックするとクラッシュする。これを修正する方法は一切分かりません。( – Akosha

+0

+1のsimpleBobのコメントです。情報が提供されているので、問題の原因を調べるのはかなり難しいです。http://msmvps.com/blogs /jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx – occulus

答えて

0

私は以前アイバーズへの参照ことを発見していますself.ivarとして参照される必要があります。おそらくmanagedObjectContextへの参照は、代わりにself.managedObjectContextですか?

0

私は非常に必ずこのことについてはないですが、あなたもこれを試すことができます。..

Click on your **project**->go to **info**-> go to **build** section-> in that go to **Deployment** section->then **IOS deployment** section choose the **deployment target to IOS 5** or latest and save and run... 

が、それは...あなたを助けることを願って:)

0

私は解決策を見つけることができます。

何とかiOS5がiOS4に存在するdoest'nのオブジェクトの一部を検出して見つけようとしましたが、あきらめました。

代わりに私はARCをオンにして、すべてのリリースとdeallocをコメントしてください。私のアプリは本当にうまくいきます。私は今それがより速く働く印象を受ける。これが誰かを助けることを願って...

関連する問題