2012-02-10 2 views
-1

Мы столкнулись с крахом в моем приложении. Я проверяю инструмент, который после размещения 10 МБ приложения получает сбой в любой точке (не какой-либо экземпляр исправления).ошибка приложения после выделения памяти 10 мб

Я назначаю соответствующую метку 1000 каждый раз, когда я нажимаю на любую кнопку в цикле и отпускаю ее после проделанной работы, пожалуйста, помогите. В инструменте нет утечек памяти, но при этом происходит сбой приложения после выделения 10 Мб памяти.

это код, который я применяю при нажатии кнопки это правильный путь ??????

-(IBACTION) btnShow 
{ 

    for (UIView *obj in scrollview.subviews) 
    { 
     [obj removeFromSuperview]; 
    } 

    int x; 
    int y=0; 

    for (int j=0; j<12; j++) { 
     x=0; 

     // Do any additional setup after loading the view, typically from a nib. 
     for (int i=0; i<1000; i++) { 
      UILabel * lblUsage=[[UILabel alloc] initWithFrame:CGRectMake(x, y, 75, 45)]; 
      lblUsage.text=[NSString stringWithFormat:@"%d",i]; 
      lblUsage.textColor=[UIColor lightGrayColor]; 
      lblUsage.numberOfLines=2; 
      lblUsage.font = [UIFont systemFontOfSize:14.0]; 
      lblUsage.textAlignment=UITextAlignmentCenter;   
      lblUsage.backgroundColor=[UIColor colorWithPatternImage: 
      [UIImage imageNamed:@"labelBox.png"]]; 
      lblUsage.layer.borderColor = [UIColor blackColor].CGColor; 
      lblUsage.layer.borderWidth = 0.5; 
      [scrollview addSubview:lblUsage]; 
      [lblUsage release]; 

      x+=75; 
     } 
     y+=40; 
    } 
    scrollview.contentSize=CGSizeMake(x, 1000); 
} 
+0

ничего не должно быть особенно о 10 мб ... может быть, это выделение для одного для цикла .. и в следующий раз, когда он выйдет из строя. Разместите свой код, где вы делаете цикл for ... и какую ошибку вы получаете..SIGBART..EXC_BAD_ACCESS? – Shubhank

+0

Я не получаю ошибку SIGBART..EXC_BAD_ACCESS на ipad, просто он неожиданно попал в ситуацию после получения, получил уровень предупреждения об ошибке 2 – SONOFGOD

+0

код ??? .. и он не будет сбой без ошибок .. – Shubhank

ответ

2

вы получите предупреждения памяти в коде выше

память предупредительного уровень 1 является первым предупреждение, где вы должны удалить ненужный вид, чтобы очистить память

память уровень предупреждения- предел .. удалите что-нибудь сейчас или ваше приложение закроется в течение нескольких секунд.

уровень предупреждения о тревоге 3 отправляется, когда система решила выйти из вашего приложения! из-за использования памяти

0

Извините, но вам просто нужно принять совершенно другой подход, который будет сделать ваш код намного сложнее. Невозможно обойтись, создав 12 000 ярлыков с фоном рисунка.

  • первоначально вы бы создать только те ярлыки, которые отображаются на экране, и один или двух строк (и столбцов) те, которые могут вскоре появиться на экране, когда пользователь прокручивает

  • тогда вы сделайте большую часть своей работы в viewDidScroll, создав и утилизируя таблички «на лету». здесь ваш код должен решить, какие метки могут быть утилизированы (если они достаточно далеко от видимого экрана) и которые должны быть созданы, потому что они могут появиться в ближайшее время на экране (в зависимости от текущего местоположения контента. смещение)

Посмотрите на ScrollViewSuite в качестве примера для плитки. Это не совсем то, что вы ищете , но это должно дать вам кикстарт.