2012-05-11 10 views
0

IOS5.1アプリケーションでCorePlot-Cocoa Touchを利用しています。散布図、dataForPlots、凡例などの設定には時間がかかるため、UIActivityIndi​​catorViewをインクルードしてユーザに何かが起きていることを示します。UIActivityIndi​​catorViewとCorePlot-CocoaTouchを使用するとメモリプリフェクトが発生します

- (void)viewWillAppear:(BOOL)animated 
{ 

    [super viewWillAppear:animated]; 

    progressInd = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
    progressInd.center = self.view.center; 
    [progressInd sizeToFit]; 
    progressInd.hidden = NO; 
    progressInd.alpha = 1.0; 

    [self.view addSubview:progressInd]; 
    [progressInd startAnimating]; 
    [self.view bringSubviewToFront:progressInd]; 

    [self performSelectorInBackground:@selector(DoMakeupPlot) withObject:nil]; 

} 

- (void)DoMakeupPlot 
{ 
    … set up plot 
    … including datasource and delegate 

    [progressInd stopAnimating]; 
    [progressInd removeFromSuperview]; 
    progressInd = nil; 
} 

今これは機会に動作しているようですが、しかし、それは、プロットデータソースルーチンを呼び出す2つのスレッドがなることは明白です:

- (NSUInteger)numberOfRecordsForPlot:(CPTPlot *)プロット

- (のNSNumber *)numberForPlot:(CPTPlot *)プロットフィールド:(NSUInteger)fieldEnum recordIndex:機会に行います(NSUInteger)インデックス

メモリの問題を引き起こし、アプリケーションがクラッシュします。

上記の2つのルーチンから2つのスレッドを抜け出そうとしましたが、これは他の問題を引き起こします。

このUIActivityIndi​​catorViewを使用する前に、上記の2つのルーチンがMainThreadから呼び出され、すべてが良好です。

また、MBProgressHudでこれを試しましたが、明らかに同じ問題があります。

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    HUD = [[MBProgressHUD alloc] initWithView:self.view]; 
    [self.view addSubview:HUD]; 

    HUD.delegate = self; 
    HUD.labelText = @"Loading"; 
    HUD.detailsLabelText = @"plot data"; 
    HUD.square = YES; 

    [HUD showWhileExecuting:@selector(DoMakeupPlot) onTarget:self withObject:nil animated:YES]; 
} 

MainThreadがUIActivityIndi​​catorViewをしながら、それは設定を行っている後どのように私は、数値演算を実行スレッドを削除するには?

ヘルプありがとうございます。

答えて

0

-DoMakeupPlotが終了するまでデータソースを設定しないでください。そうすれば、プロットは準備が整っていないデータソースからデータをロードしようとしません。

+0

ありがとうございました。これは、アクティビティインジケータが終了した後にデータソースと代理人を設定する次のステップになります。 – swainwri

関連する問題