0
- (void)viewDidLoad {

    webCollectionOnScroller=[[NSMutableArray alloc] init];
    scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 370, 320, 94)];
    scroll.pagingEnabled = YES;
    currentWeb=0;
    globali=0;
    firstTime=0;
    [loadingWeb startAnimating];
    alertForLoading = [[UIAlertView alloc] initWithTitle:@"Loading..." message:@"link is being loaded.\n Please wait!" delegate:self cancelButtonTitle:@"Back" otherButtonTitles:nil];
    [alertForLoading show];
    UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

    // Adjust the indicator so it is up a few pixels from the bottom of the alert
    indicator.center = CGPointMake(alertForLoading.bounds.size.width / 2, alertForLoading.bounds.size.height - 100);
    [indicator startAnimating];
    [alertForLoading addSubview:indicator];
    [NSThread detachNewThreadSelector:@selector(initializeParser)toTarget:self withObject:nil];
    [super viewDidLoad];
}

これはコンソールエラーです「-[linksGalleryrespondsToSelector:]:メッセージが割り当て解除されたインスタンス0x639a890に送信されました[プロセス2211に切り替え]」

メインビューでリリースステートメントにコメントしてもクラッシュしません

-(IBAction) goToLinks{
    linksGallery *showLinks=[[linksGallery alloc] initWithNibName:@"linksGallery" bundle:nil];
    [self.navigationController pushViewController:showLinks animated:YES];
        //[showLinks release];
}
4

4 に答える 4

1

最初に以下の行を入れてみてください:

[super viewDidLoad];

「dealloc()」関数内:

[super dealloc];

すべてのリリースの終わりに。

これがお役に立てば幸いです。

于 2012-05-23T12:11:43.667 に答える
0

このエラーメッセージは、メッセージ'respondsToSelector'を送信するまでにlinksGalleryのインスタンスが解放されたことを意味します。これをデバッグするには、リリース時にnullに設定してみてください。そうすれば、クラッシュすることはありませんが、おそらく希望どおりの動作はしません。

于 2012-05-23T12:02:58.997 に答える
0

次のコードを試してください

-(IBAction) goToLinks{
    linksGallery *showLinks=[[linksGallery alloc] initWithNibName:@"linksGallery" bundle:nil];
    [self.navigationController pushViewController:[showLinks mutableCopy] animated:YES];
    [showLinks release];
}

また

-(IBAction) goToLinks{
    linksGallery *showLinks=[[[linksGallery alloc] initWithNibName:@"linksGallery" bundle:nil] autorelease];
    [self.navigationController pushViewController:showLinks animated:YES];
    //[showLinks release];
}

これがお役に立てば幸いです

于 2012-05-23T12:18:29.260 に答える
0

ViewDidLoadを次のようにします。

- (void)viewDidLoad {

[super viewDidLoad];

webCollectionOnScroller=[[NSMutableArray alloc] init];
scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 370, 320, 94)];
scroll.pagingEnabled = YES;
currentWeb=0;
globali=0;
firstTime=0;
[loadingWeb startAnimating];
alertForLoading = [[UIAlertView alloc] initWithTitle:@"Loading..." message:@"link is being loaded.\n Please wait!" delegate:self cancelButtonTitle:@"Back" otherButtonTitles:nil];
[alertForLoading show];
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

// Adjust the indicator so it is up a few pixels from the bottom of the alert
indicator.center = CGPointMake(alertForLoading.bounds.size.width / 2, alertForLoading.bounds.size.height - 100);
[indicator startAnimating];
[alertForLoading addSubview:indicator];
[NSThread detachNewThreadSelector:@selector(initializeParser)toTarget:self withObject:nil];

}
于 2012-05-23T12:34:46.650 に答える