2011-09-23 42 views
2

你好,我是想寫更新UIProgressbar的方法!UIProgressbar更新方法

問題是,當兩個值都很好地到達方法(NSLog顯示值) 除法操作生成bad_access當我運行應用程序!

我試過很多信息從類似的intValue/inValue兩個值...

幫我解決這個問題,我怎麼能打印的NSNumber值

-(void)UpdateProgressbar:(NSNumber *)currentOperationNumer TotalOperationNumber:(NSNumber*)n 
{ 
    NSLog(@" operation : %i",currentOperationNumer); 
    NSLog(@" total : %i",n); 

    if (currentOperationNumer<=n) 
    { 
     [downloadBar setProgress:(currentOperationNumer/n)]; 
    NSLog(@"progress !"); 
    } 
    else 
    { 
    [self.view removeFromSuperview]; 
    } 
} 

回答

0

嘗試[currentOperationNumber的intValue]代替currentOperationNumber(或者floatValue如果setProgress需要浮點數)。所以....

int myProgress = [currentOperationNumber intValue]/[n intValue]; 
[downloadBar setProgress:myProgress]; 

其實,是不是一個浮點值,它在那裏期待?

+0

沒有,這不是工作:/ – Bechir

0

NSNumber的是各種基本類型的對象包裝,你在做什麼,你試圖通過一個指針來劃分的指針..

也許嘗試鏈接代碼..

[downloadBar setProgress:([currentOperationNumer intValue]/[n intValue])]; 
0

您可以通過使用下面的代碼

-(void)UpdateProgressbar:(NSNumber *)currentOperationNumer TotalOperationNumber:(NSNumber*)n 
{ 
    NSLog(@" operation : %@",currentOperationNumer); 
    NSLog(@" total : %@",n); 

    if (currentOperationNumer<=n) 
    { 
     [downloadBar setProgress:(currentOperationNumer/n)]; 
    NSLog(@"progress !"); 
    } 
    else 
    { 
    [self.view removeFromSuperview]; 
    } 
} 
0

調試EXC_BAD_ACCESS的最佳方式打印值:

  1. 如果你不使用的XCode 4,然後再升級。
  2. 在XCode 4中,按CMD-I運行儀器。
  3. 選擇殭屍配置文件。 (背景:EXC_BAD_ACCESS表示你正在向一個釋放對象發送一條消息,Zombie打開殭屍特性,所以保留計數爲0的對象不會被釋放,而是保持爲一個殭屍。NSZombie類在消息發送時產生一個異常發送到它 - 因此它可能被困住,並確定了原點。)
  4. 通過儀器運行您的應用程序。當它崩潰時,樂器將會彈出標註,指示已釋放但已訪問的內存。
  5. 您可以單擊右下角的小箭頭,這會爲您提供該內存的alloc/retain/release歷史記錄以及執行該操作的代碼。點擊源列,它會帶你到代碼中的那一行。
+0

的XCode 3實在是太難以調試這種方式。 4值得一小打,你會在新界面上的學習曲線。 –

0

使其確保downloadBar.progress是float,它是從0.0到1.0的包容性。

請試試這個:

float current = 0.0f; float count = 100.0f;

而(東西..){ downloadBar.progress =電流/計數; }

應該沒有問題工作。