Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 多时间分配和释放_Iphone_Xcode4_Memory Management_Release Management - Fatal编程技术网

Iphone 多时间分配和释放

Iphone 多时间分配和释放,iphone,xcode4,memory-management,release-management,Iphone,Xcode4,Memory Management,Release Management,我正在为iPhone/iPad(通用应用程序)创建一个测验应用程序。它在模拟器上运行良好,但在真实设备上,我面临一些问题 我以编程的方式创建UILabel和UIButton,并且多次使用它们逐个显示问题和答案 问题是当我谈到问题20到22时,应用程序崩溃了。我不知道为什么。我没有发现内存泄漏。我在-dealloc功能中释放所有标签和按钮。 这可能是因为22个问题占用了一些内存,直到dealloc函数调用才释放 我想问的是,有没有办法在每个问题后释放标签和按钮,然后再分配?或者我可以用更少的内

我正在为iPhone/iPad(通用应用程序)创建一个测验应用程序。它在模拟器上运行良好,但在真实设备上,我面临一些问题

  • 我以编程的方式创建UILabel和UIButton,并且多次使用它们逐个显示问题和答案
问题是当我谈到问题20到22时,应用程序崩溃了。我不知道为什么。我没有发现内存泄漏。我在-dealloc功能中释放所有标签和按钮。
这可能是因为22个问题占用了一些内存,直到dealloc函数调用才释放

我想问的是,有没有办法在每个问题后释放标签和按钮,然后再分配?或者我可以用更少的内存来分配标签和按钮

我正在使用以下代码:

//lbl ref to btn1
ans1 = [[[UILabel alloc] initWithFrame:CGRectMake(36, 292, 697, 100)] autorelease];
ans1.numberOfLines = 0;
ans1.font = [UIFont systemFontOfSize:26];
ans1.text = [theQuiz objectAtIndex:row+1];
ans1.lineBreakMode = UILineBreakModeWordWrap;
[ans1 sizeToFit];
//[self.view addSubview:ans1];
//lbl ref to btn2
ans2 = [[[UILabel alloc] initWithFrame:CGRectMake(36, 312 + ans1.frame.size.height , 697, 100)] autorelease];
ans2.numberOfLines = 0;
ans2.font = [UIFont systemFontOfSize:26];
ans2.text = [theQuiz objectAtIndex:row+2];
ans2.lineBreakMode = UILineBreakModeWordWrap;
[ans2 sizeToFit];
// [self.view addSubview:ans2];
//lbl ref to btn3
ans3 = [[[UILabel alloc] initWithFrame:CGRectMake(36 ,332 + ans1.frame.size.height + ans2.frame.size.height , 697 , 100)] autorelease];
ans3.numberOfLines = 0;
ans3.font = [UIFont systemFontOfSize:26];
ans3.text = [theQuiz objectAtIndex:row+3] ;
ans3.lineBreakMode = UILineBreakModeWordWrap;
[ans3 sizeToFit];
// [self.view addSubview:ans3];
//lbl ref to btn4
ans4 = [[[UILabel alloc] initWithFrame:CGRectMake(36, 352 + ans1.frame.size.height + ans2.frame.size.height + ans3.frame.size.height, 697, 100)] autorelease];
ans4.numberOfLines = 0;
ans4.font = [UIFont systemFontOfSize:26];
ans4.text = [theQuiz objectAtIndex:row+4];
ans4.lineBreakMode = UILineBreakModeWordWrap;
[ans4 sizeToFit];
// [self.view addSubview:ans4];

rightAnswer = [[theQuiz objectAtIndex:row+5] intValue];

Question = [[[UILabel alloc] initWithFrame:CGRectMake(22, 130, 725, 160)] autorelease];
Question.numberOfLines = 0;
//Question.font = [UIFont systemFontOfSize:27];
Question.text = [NSString stringWithFormat:@"%@" ,selected1];
Question.lineBreakMode = UILineBreakModeWordWrap;
[Question setFont:[UIFont fontWithName:@"Futura" size:26]];
Question.backgroundColor = [UIColor clearColor];
[Question sizeToFit];
[self.view addSubview:Question];

//For 1st Option.
button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self 
           action:@selector(buttonOne)
 forControlEvents:UIControlEventTouchDown];
button.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
button.titleLabel.font = [UIFont systemFontOfSize:24];
[button setTitle:[theQuiz objectAtIndex:row+1] forState:UIControlStateNormal];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
button.frame = CGRectMake(34, 200 + Question.frame.size.height , 700, ans1.frame.size.height + 20) ;
[self.view addSubview:button];
button.layer.borderWidth = 3;
button.layer.borderColor = [[UIColor purpleColor ] CGColor];
button.layer.cornerRadius = 10.0;
[button setBackgroundImage:[UIImage imageNamed:@"buttun.png"] forState:UIControlStateNormal];
button.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);

//For 2nd Option.
button2 = [UIButton buttonWithType:UIButtonTypeCustom];
[button2 addTarget:self 
            action:@selector(buttonTwo)
  forControlEvents:UIControlEventTouchDown];
[button2 setTitle:[theQuiz objectAtIndex:row+2] forState:UIControlStateNormal];
[button2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
button2.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
button2.titleLabel.font = [UIFont systemFontOfSize:24];
button2.frame = CGRectMake(34, 230 + Question.frame.size.height + button.frame.size.height , 700, ans2.frame.size.height + 20);
button2.layer.borderWidth = 3;
button2.layer.borderColor = [[UIColor darkGrayColor ] CGColor];
button2.layer.cornerRadius = 10.0;
[self.view addSubview:button2];
[button2 setBackgroundImage:[UIImage imageNamed:@"buttun2.png"] forState:UIControlStateNormal];
button2.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);

//For 3rd Option.
button3 = [UIButton buttonWithType:UIButtonTypeCustom];
[button3 addTarget:self 
            action:@selector(buttonThree)
  forControlEvents:UIControlEventTouchDown];
[button3 setTitle:[theQuiz objectAtIndex:row+3] forState:UIControlStateNormal];
[button3 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
button3.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
button3.titleLabel.font = [UIFont systemFontOfSize:24];
button3.frame = CGRectMake(34, 260 + Question.frame.size.height + button.frame.size.height + button2.frame.size.height , 700, ans3.frame.size.height + 20);
button3.layer.borderWidth = 3;
button3.layer.borderColor = [[UIColor purpleColor ] CGColor];
button3.layer.cornerRadius = 10.0;

[self.view addSubview:button3];
[button3 setBackgroundImage:[UIImage imageNamed:@"buttun.png"] forState:UIControlStateNormal];
button3.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);

//For 4th Option.
button4 = [UIButton buttonWithType:UIButtonTypeCustom];
[button4 addTarget:self 
            action:@selector(buttonFour)
  forControlEvents:UIControlEventTouchDown];
[button4 setTitle:[theQuiz objectAtIndex:row+4] forState:UIControlStateNormal];
[button4 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
button4.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
button4.titleLabel.font = [UIFont systemFontOfSize:24];
button4.frame = CGRectMake(34, 290 + Question.frame.size.height + button.frame.size.height + button2.frame.size.height + button3.frame.size.height , 700, ans4.frame.size.height + 20);
button4.layer.borderWidth = 3;
button4.layer.borderColor = [[UIColor darkGrayColor ] CGColor];
button4.layer.cornerRadius = 10.0;
[self.view addSubview:button4];
[button4 setBackgroundImage:[UIImage imageNamed:@"buttun2.png"] forState:UIControlStateNormal];
button4.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);

NSString *strright = [theQuiz objectAtIndex:row+7];
//NSString *strtext = [[NSString alloc] initWithFormat:@"%@" , strright];

rightans = [[[UILabel alloc] initWithFrame:CGRectMake(50, 330, 650, 150)]autorelease];
rightans.numberOfLines = 0;
rightans.text = [NSString stringWithFormat:@"%@" , strright];
rightans.backgroundColor = [UIColor clearColor];
rightans.font = [UIFont systemFontOfSize:26];
[self.view addSubview:rightans];
[rightans sizeToFit];
[rightans setHidden:YES];

//Description.
NSString *des = [theQuiz objectAtIndex:row+6];
//  NSString *destext = [[NSString alloc] initWithFormat:@"\n> Explanation :\n%@\n\n" , des];

Description = [[[UILabel alloc] initWithFrame:CGRectMake(40, 400 + rightans.frame.size.height , 690, 150)] autorelease];
Description.numberOfLines = 0;
// Description.font = [UIFont systemFontOfSize:13.5];
Description.text = [NSString stringWithFormat:@"\n> Explanation :\n%@\n\n" , des];
[Description setFont:[UIFont fontWithName:@"Futura" size:26]];
Description.lineBreakMode = UILineBreakModeWordWrap;
Description.backgroundColor = [UIColor clearColor];
[Description sizeToFit];
[self.view addSubview:Description];
[Description setHidden:YES];


ContainerView = [[UIView alloc] initWithFrame:CGRectMake(30, 400 + rightans.frame.size.height , 700 ,Description.frame.size.height)];
ContainerView.backgroundColor = [UIColor clearColor];
ContainerView.layer.cornerRadius = 10.0;
ContainerView.layer.borderColor = [[UIColor grayColor] CGColor];
ContainerView.layer.borderWidth = 3;
// [ContainerView addSubview:Description];
[self.view addSubview:ContainerView];
[ContainerView setHidden:YES];
有什么帮助吗??

谢谢。

您不应该释放自动释放对象。

您不应该释放自动释放对象。

首先,您应该在使用
[self.view addSubview:myObj]将对象添加到视图后立即释放该对象。
。当您添加这样一个对象时,它的retain count会随着父视图的增加而增加&您应该释放它(减少它的retain count)以允许它进行垃圾收集。您的代码应该是-

[self.view addSubview: myObj];
[myObj release];
第二,你有事故记录吗

嗯,


Akshay

首先,您应该在使用
[self.view addSubview:myObj]
将对象添加到视图后立即释放该对象。当您添加这样一个对象时,它的retain count会随着父视图的增加而增加&您应该释放它(减少它的retain count)以允许它进行垃圾收集。您的代码应该是-

[self.view addSubview: myObj];
[myObj release];
第二,你有事故记录吗

嗯,

阿克什

  • 一旦将标签作为子视图添加到视图中,视图将保留标签,您可以释放标签,在您的情况下,您不是在释放ContainerView
  • 您不应该释放自动释放的对象-这很好
  • 一旦将标签作为子视图添加到视图中,视图将保留标签,您可以释放标签,在您的情况下,您不是在释放ContainerView
  • 您不应该释放自动释放的对象-这很好
  • 1) 简单的规则是,你们释放你们所分配或保留的任何东西,复制……你们所有的其他变量都将自动释放。在代码中,您可以分配所有标签,但不能分配按钮。。将标签添加到子视图后,必须释放所有标签。您只需添加到子视图中的按钮,而不释放afterwords,因为您没有分配它。。既然你们问了两天的问题,我就开始编写你们的代码

    //lbl ref to btn1
    ans1 = [[[UILabel alloc] initWithFrame:CGRectMake(36, 292, 697, 100)] autorelease];
    ans1.numberOfLines = 0;
    ans1.font = [UIFont systemFontOfSize:26];
    ans1.text = [theQuiz objectAtIndex:row+1];
    ans1.lineBreakMode = UILineBreakModeWordWrap;
    [ans1 sizeToFit];
    [self.view addSubview:ans1];
    
    
    //lbl ref to btn2
    ans2 = [[[UILabel alloc] initWithFrame:CGRectMake(36, 312 + ans1.frame.size.height , 697, 100)] autorelease];
    ans2.numberOfLines = 0;
    ans2.font = [UIFont systemFontOfSize:26];
    ans2.text = [theQuiz objectAtIndex:row+2];
    ans2.lineBreakMode = UILineBreakModeWordWrap;
    [ans2 sizeToFit];
    [self.view addSubview:ans2];
    
    
    //lbl ref to btn3
    ans3 = [[[UILabel alloc] initWithFrame:CGRectMake(36 ,332 + ans1.frame.size.height + ans2.frame.size.height , 697 , 100)] autorelease];
    ans3.numberOfLines = 0;
    ans3.font = [UIFont systemFontOfSize:26];
    ans3.text = [theQuiz objectAtIndex:row+3] ;
    ans3.lineBreakMode = UILineBreakModeWordWrap;
    [ans3 sizeToFit];
    [self.view addSubview:ans3];
    
    
    //lbl ref to btn4
    ans4 = [[[UILabel alloc] initWithFrame:CGRectMake(36, 352 + ans1.frame.size.height + ans2.frame.size.height + ans3.frame.size.height, 697, 100)] autorelease];
    ans4.numberOfLines = 0;
    ans4.font = [UIFont systemFontOfSize:26];
    ans4.text = [theQuiz objectAtIndex:row+4];
    ans4.lineBreakMode = UILineBreakModeWordWrap;
    [ans4 sizeToFit];
    [self.view addSubview:ans4];
    
    rightAnswer = [[theQuiz objectAtIndex:row+5] intValue];
    
    Question = [[[UILabel alloc] initWithFrame:CGRectMake(22, 130, 725, 160)] autorelease];
    Question.numberOfLines = 0;
    //Question.font = [UIFont systemFontOfSize:27];
    Question.text = [NSString stringWithFormat:@"%@" ,selected1];
    Question.lineBreakMode = UILineBreakModeWordWrap;
    [Question setFont:[UIFont fontWithName:@"Futura" size:26]];
    Question.backgroundColor = [UIColor clearColor];
    [Question sizeToFit];
    [self.view addSubview:Question];
    
    //For 1st Option.
    button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button addTarget:self action:@selector(buttonOne) forControlEvents:UIControlEventTouchDown];
    button.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
    button.titleLabel.font = [UIFont systemFontOfSize:24];
    [button setTitle:[theQuiz objectAtIndex:row+1] forState:UIControlStateNormal];
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    button.frame = CGRectMake(34, 200 + Question.frame.size.height , 700, ans1.frame.size.height + 20) ;
    button.layer.borderWidth = 3;
    button.layer.borderColor = [[UIColor purpleColor ] CGColor];
    button.layer.cornerRadius = 10.0;
    [button setBackgroundImage:[UIImage imageNamed:@"buttun.png"] forState:UIControlStateNormal];
    button.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);
    [self.view addSubview:button];
    
    
    
    //For 2nd Option.
    button2 = [UIButton buttonWithType:UIButtonTypeCustom];
    [button2 addTarget:self action:@selector(buttonTwo) forControlEvents:UIControlEventTouchDown];
    [button2 setTitle:[theQuiz objectAtIndex:row+2] forState:UIControlStateNormal];
    [button2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    button2.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
    button2.titleLabel.font = [UIFont systemFontOfSize:24];
    button2.frame = CGRectMake(34, 230 + Question.frame.size.height + button.frame.size.height , 700, ans2.frame.size.height + 20);
    button2.layer.borderWidth = 3;
    button2.layer.borderColor = [[UIColor darkGrayColor ] CGColor];
    button2.layer.cornerRadius = 10.0;
    [button2 setBackgroundImage:[UIImage imageNamed:@"buttun2.png"] forState:UIControlStateNormal];
    button2.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);
    [self.view addSubview:button2];
    
    
    //For 3rd Option.
    button3 = [UIButton buttonWithType:UIButtonTypeCustom];
    [button3 addTarget:self action:@selector(buttonThree) forControlEvents:UIControlEventTouchDown];
    [button3 setTitle:[theQuiz objectAtIndex:row+3] forState:UIControlStateNormal];
    [button3 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    button3.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
    button3.titleLabel.font = [UIFont systemFontOfSize:24];
    button3.frame = CGRectMake(34, 260 + Question.frame.size.height + button.frame.size.height + button2.frame.size.height , 700, ans3.frame.size.height + 20);
    button3.layer.borderWidth = 3;
    button3.layer.borderColor = [[UIColor purpleColor ] CGColor];
    button3.layer.cornerRadius = 10.0;
    [button3 setBackgroundImage:[UIImage imageNamed:@"buttun.png"] forState:UIControlStateNormal];
    button3.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);
    [self.view addSubview:button3];
    
    
    
    //For 4th Option.
    button4 = [UIButton buttonWithType:UIButtonTypeCustom];
    [button4 addTarget:self action:@selector(buttonFour) forControlEvents:UIControlEventTouchDown];
    [button4 setTitle:[theQuiz objectAtIndex:row+4] forState:UIControlStateNormal];
    [button4 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    button4.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
    button4.titleLabel.font = [UIFont systemFontOfSize:24];
    button4.frame = CGRectMake(34, 290 + Question.frame.size.height + button.frame.size.height + button2.frame.size.height + button3.frame.size.height , 700, ans4.frame.size.height + 20);
    button4.layer.borderWidth = 3;
    button4.layer.borderColor = [[UIColor darkGrayColor ] CGColor];
    button4.layer.cornerRadius = 10.0;
    [button4 setBackgroundImage:[UIImage imageNamed:@"buttun2.png"] forState:UIControlStateNormal];
    button4.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);
    [self.view addSubview:button4];
    
    
    
    NSString *strright = [theQuiz objectAtIndex:row+7];
    //NSString *strtext = [[NSString alloc] initWithFormat:@"%@" , strright];
    
    
    
    rightans = [[[UILabel alloc] initWithFrame:CGRectMake(50, 330, 650, 150)]autorelease];
    rightans.numberOfLines = 0;
    rightans.text = [NSString stringWithFormat:@"%@" , strright];
    rightans.backgroundColor = [UIColor clearColor];
    rightans.font = [UIFont systemFontOfSize:26];
    [rightans sizeToFit];
    [rightans setHidden:YES];
    [self.view addSubview:rightans];
    
    
    //Description.
    NSString *des = [theQuiz objectAtIndex:row+6];
    //  NSString *destext = [[NSString alloc] initWithFormat:@"\n> Explanation :\n%@\n\n" , des];
    
    
    Description = [[[UILabel alloc] initWithFrame:CGRectMake(40, 400 + rightans.frame.size.height , 690, 150)] autorelease];
    Description.numberOfLines = 0;
    // Description.font = [UIFont systemFontOfSize:13.5];
    Description.text = [NSString stringWithFormat:@"\n> Explanation :\n%@\n\n" , des];
    [Description setFont:[UIFont fontWithName:@"Futura" size:26]];
    Description.lineBreakMode = UILineBreakModeWordWrap;
    Description.backgroundColor = [UIColor clearColor];
    [Description sizeToFit];
    [Description setHidden:YES];
    [self.view addSubview:Description];
    
    
    
    ContainerView = [[UIView alloc] initWithFrame:CGRectMake(30, 400 + rightans.frame.size.height , 700 ,Description.frame.size.height)];
    ContainerView.backgroundColor = [UIColor clearColor];
    ContainerView.layer.cornerRadius = 10.0;
    ContainerView.layer.borderColor = [[UIColor grayColor] CGColor];
    ContainerView.layer.borderWidth = 3;
    // [ContainerView addSubview:Description];
    [ContainerView setHidden:YES];
    [self.view addSubview:ContainerView];
    [ContainerView release];
    
    其他一些值得注意的问题

    1) 变量名应始终以小写字母开头。。这不是一个书面规则,而是一个很好的实践,对你自己和其他人(像我们)来说都比较容易复习。变量名“Description”和“Question”不好

    2) 永远不要重复你的问题。。如果您只是对代码进行了更好的格式化,您应该已经在前面的问题中得到了答案。

    1)简单的规则是,您释放您分配或保留的任何内容,复制……所有其他变量都将自动释放。在代码中,您可以分配所有标签,但不能分配按钮。。将标签添加到子视图后,必须释放所有标签。您只需添加到子视图中的按钮,而不释放afterwords,因为您没有分配它。。既然你们问了两天的问题,我就开始编写你们的代码

    //lbl ref to btn1
    ans1 = [[[UILabel alloc] initWithFrame:CGRectMake(36, 292, 697, 100)] autorelease];
    ans1.numberOfLines = 0;
    ans1.font = [UIFont systemFontOfSize:26];
    ans1.text = [theQuiz objectAtIndex:row+1];
    ans1.lineBreakMode = UILineBreakModeWordWrap;
    [ans1 sizeToFit];
    [self.view addSubview:ans1];
    
    
    //lbl ref to btn2
    ans2 = [[[UILabel alloc] initWithFrame:CGRectMake(36, 312 + ans1.frame.size.height , 697, 100)] autorelease];
    ans2.numberOfLines = 0;
    ans2.font = [UIFont systemFontOfSize:26];
    ans2.text = [theQuiz objectAtIndex:row+2];
    ans2.lineBreakMode = UILineBreakModeWordWrap;
    [ans2 sizeToFit];
    [self.view addSubview:ans2];
    
    
    //lbl ref to btn3
    ans3 = [[[UILabel alloc] initWithFrame:CGRectMake(36 ,332 + ans1.frame.size.height + ans2.frame.size.height , 697 , 100)] autorelease];
    ans3.numberOfLines = 0;
    ans3.font = [UIFont systemFontOfSize:26];
    ans3.text = [theQuiz objectAtIndex:row+3] ;
    ans3.lineBreakMode = UILineBreakModeWordWrap;
    [ans3 sizeToFit];
    [self.view addSubview:ans3];
    
    
    //lbl ref to btn4
    ans4 = [[[UILabel alloc] initWithFrame:CGRectMake(36, 352 + ans1.frame.size.height + ans2.frame.size.height + ans3.frame.size.height, 697, 100)] autorelease];
    ans4.numberOfLines = 0;
    ans4.font = [UIFont systemFontOfSize:26];
    ans4.text = [theQuiz objectAtIndex:row+4];
    ans4.lineBreakMode = UILineBreakModeWordWrap;
    [ans4 sizeToFit];
    [self.view addSubview:ans4];
    
    rightAnswer = [[theQuiz objectAtIndex:row+5] intValue];
    
    Question = [[[UILabel alloc] initWithFrame:CGRectMake(22, 130, 725, 160)] autorelease];
    Question.numberOfLines = 0;
    //Question.font = [UIFont systemFontOfSize:27];
    Question.text = [NSString stringWithFormat:@"%@" ,selected1];
    Question.lineBreakMode = UILineBreakModeWordWrap;
    [Question setFont:[UIFont fontWithName:@"Futura" size:26]];
    Question.backgroundColor = [UIColor clearColor];
    [Question sizeToFit];
    [self.view addSubview:Question];
    
    //For 1st Option.
    button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button addTarget:self action:@selector(buttonOne) forControlEvents:UIControlEventTouchDown];
    button.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
    button.titleLabel.font = [UIFont systemFontOfSize:24];
    [button setTitle:[theQuiz objectAtIndex:row+1] forState:UIControlStateNormal];
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    button.frame = CGRectMake(34, 200 + Question.frame.size.height , 700, ans1.frame.size.height + 20) ;
    button.layer.borderWidth = 3;
    button.layer.borderColor = [[UIColor purpleColor ] CGColor];
    button.layer.cornerRadius = 10.0;
    [button setBackgroundImage:[UIImage imageNamed:@"buttun.png"] forState:UIControlStateNormal];
    button.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);
    [self.view addSubview:button];
    
    
    
    //For 2nd Option.
    button2 = [UIButton buttonWithType:UIButtonTypeCustom];
    [button2 addTarget:self action:@selector(buttonTwo) forControlEvents:UIControlEventTouchDown];
    [button2 setTitle:[theQuiz objectAtIndex:row+2] forState:UIControlStateNormal];
    [button2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    button2.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
    button2.titleLabel.font = [UIFont systemFontOfSize:24];
    button2.frame = CGRectMake(34, 230 + Question.frame.size.height + button.frame.size.height , 700, ans2.frame.size.height + 20);
    button2.layer.borderWidth = 3;
    button2.layer.borderColor = [[UIColor darkGrayColor ] CGColor];
    button2.layer.cornerRadius = 10.0;
    [button2 setBackgroundImage:[UIImage imageNamed:@"buttun2.png"] forState:UIControlStateNormal];
    button2.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);
    [self.view addSubview:button2];
    
    
    //For 3rd Option.
    button3 = [UIButton buttonWithType:UIButtonTypeCustom];
    [button3 addTarget:self action:@selector(buttonThree) forControlEvents:UIControlEventTouchDown];
    [button3 setTitle:[theQuiz objectAtIndex:row+3] forState:UIControlStateNormal];
    [button3 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    button3.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
    button3.titleLabel.font = [UIFont systemFontOfSize:24];
    button3.frame = CGRectMake(34, 260 + Question.frame.size.height + button.frame.size.height + button2.frame.size.height , 700, ans3.frame.size.height + 20);
    button3.layer.borderWidth = 3;
    button3.layer.borderColor = [[UIColor purpleColor ] CGColor];
    button3.layer.cornerRadius = 10.0;
    [button3 setBackgroundImage:[UIImage imageNamed:@"buttun.png"] forState:UIControlStateNormal];
    button3.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);
    [self.view addSubview:button3];
    
    
    
    //For 4th Option.
    button4 = [UIButton buttonWithType:UIButtonTypeCustom];
    [button4 addTarget:self action:@selector(buttonFour) forControlEvents:UIControlEventTouchDown];
    [button4 setTitle:[theQuiz objectAtIndex:row+4] forState:UIControlStateNormal];
    [button4 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    button4.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
    button4.titleLabel.font = [UIFont systemFontOfSize:24];
    button4.frame = CGRectMake(34, 290 + Question.frame.size.height + button.frame.size.height + button2.frame.size.height + button3.frame.size.height , 700, ans4.frame.size.height + 20);
    button4.layer.borderWidth = 3;
    button4.layer.borderColor = [[UIColor darkGrayColor ] CGColor];
    button4.layer.cornerRadius = 10.0;
    [button4 setBackgroundImage:[UIImage imageNamed:@"buttun2.png"] forState:UIControlStateNormal];
    button4.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);
    [self.view addSubview:button4];
    
    
    
    NSString *strright = [theQuiz objectAtIndex:row+7];
    //NSString *strtext = [[NSString alloc] initWithFormat:@"%@" , strright];
    
    
    
    rightans = [[[UILabel alloc] initWithFrame:CGRectMake(50, 330, 650, 150)]autorelease];
    rightans.numberOfLines = 0;
    rightans.text = [NSString stringWithFormat:@"%@" , strright];
    rightans.backgroundColor = [UIColor clearColor];
    rightans.font = [UIFont systemFontOfSize:26];
    [rightans sizeToFit];
    [rightans setHidden:YES];
    [self.view addSubview:rightans];
    
    
    //Description.
    NSString *des = [theQuiz objectAtIndex:row+6];
    //  NSString *destext = [[NSString alloc] initWithFormat:@"\n> Explanation :\n%@\n\n" , des];
    
    
    Description = [[[UILabel alloc] initWithFrame:CGRectMake(40, 400 + rightans.frame.size.height , 690, 150)] autorelease];
    Description.numberOfLines = 0;
    // Description.font = [UIFont systemFontOfSize:13.5];
    Description.text = [NSString stringWithFormat:@"\n> Explanation :\n%@\n\n" , des];
    [Description setFont:[UIFont fontWithName:@"Futura" size:26]];
    Description.lineBreakMode = UILineBreakModeWordWrap;
    Description.backgroundColor = [UIColor clearColor];
    [Description sizeToFit];
    [Description setHidden:YES];
    [self.view addSubview:Description];
    
    
    
    ContainerView = [[UIView alloc] initWithFrame:CGRectMake(30, 400 + rightans.frame.size.height , 700 ,Description.frame.size.height)];
    ContainerView.backgroundColor = [UIColor clearColor];
    ContainerView.layer.cornerRadius = 10.0;
    ContainerView.layer.borderColor = [[UIColor grayColor] CGColor];
    ContainerView.layer.borderWidth = 3;
    // [ContainerView addSubview:Description];
    [ContainerView setHidden:YES];
    [self.view addSubview:ContainerView];
    [ContainerView release];
    
    其他一些值得注意的问题

    1) 变量名应始终以小写字母开头。。这不是一个书面规则,而是一个很好的实践,对你自己和其他人(像我们)来说都比较容易复习。变量名“Description”和“Question”不好


    2) 永远不要重复你的问题。。如果您只是将代码格式化得更好,您应该已经在上一个问题中得到了答案。

    我非常感谢您的回复和对我代码的处理。。但我之前的问题是关于内存泄漏。。事情解决了。。这里没有内存泄漏,但我的应用程序仍然崩溃。在你发布的代码中,你正在释放自动释放对象,这不是你想要的。这段代码将崩溃,因为您过度释放了对象。删除自动释放或不释放标签。感谢@rckoenes注意到..我从问题中复制了代码,但没有注意到他正在使用自动释放..我非常感谢你的回复和我的代码。。但我之前的问题是关于内存泄漏。。事情解决了。。这里没有内存泄漏,但我的应用程序仍然崩溃。在你发布的代码中,你正在释放自动释放对象,这不是你想要的。这段代码将崩溃,因为您过度释放了对象。删除自动释放或不释放标签。感谢@rckoenes注意到..我从问题中复制了代码,但没有注意到他正在使用自动释放..我再次使用此标签查看第二个问题。。如果我在这里发布它,那么应用程序将在这一点上停止。。因为我的标签已经发布,所以我的下一个问题没有分配。那么,你会在下一个问题之后发布它吗?此外,只有崩溃日志(控制台上显示的内容)可以帮助我们解决崩溃问题。我再次使用此标签查看第二个问题。。如果我在这里发布它,那么应用程序将在这一点上停止。。因为我的标签已经发布,所以我的下一个问题没有分配。那么,你会在下一个问题之后发布它吗?此外,只有崩溃日志(控制台上显示的内容)可以帮助我们处理崩溃。