- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdetifier = @"blogCellIdentifier";
UITableViewCell *cell = [m_tableViewDownList dequeueReusableCellWithIdentifier:cellIdetifier];
if(cell==nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdetifier] autorelease];
UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"asd"]];
[cell setBackgroundView:image];
[image release];
UIImageView *imgLeft = [[UIImageView alloc] initWithFrame:CGRect_Cell_LeftImg];
imgLeft.tag = 201;
[color=red] //这里addsubview为imgLeft引用计数+1,此时imgLeft为2[/color]
[cell addSubview:imgLeft];
[imgLeft release];
NSString *path1 = [[NSBundle mainBundle] pathForResource:kTableViewCellRightImg ofType:@"png"];
UIImageView *imgRight = [[UIImageView alloc] initWithFrame:CGRect_Cell_Rightimg];
imgRight.image = [UIImage imageWithContentsOfFile:path1];
imgRight.tag = 202;
[cell addSubview:imgRight];
[imgRight release];
}
NSString *path = [[NSBundle mainBundle] pathForResource:[m_downListDataSource objectAtIndex:indexPath.row] ofType:@"png"];
UIImageView * vv = (UIImageView*)[cell viewWithTag:201];
vv.image = [UIImage imageWithContentsOfFile:path];
return cell;
}
在我们调用这个函数(比如是[self.view addSubview:tableview])之后,tableview是否应该release?
这里要分情况,如果tableview是一个类的属性,在类对象释放的时候会自动释放,那么就不必再次释放。反之,如果他只是一个临时的对象那么就应该在加入之后进行释放。这也是符合上面所说的规则的。
self.view是tableview的管理者,他就应该在加入tableview的时候对他进行retain,在本身释放的时候release。而事实上,ios也正是这么做的。
分享到:
相关推荐
- **ARC简介**:ARC(Automatic Reference Counting),即自动引用计数,是自iOS 5开始引入的一种内存管理机制。ARC的主要目的是自动化管理Objective-C代码中的`retain`/`release`生命周期,从而降低开发者在内存...
`assign`表示这是一个基本类型,不需要引用计数。`increment`和`decrement`方法分别用于增加和减少计数值。 接下来,我们需要实现`Counter`类的方法: ```objc @implementation Counter - (void)increment { ...
- **内存管理**:Swift使用自动引用计数(ARC)和弱引用,确保有效管理和释放内存。 2. **iOS开发基础**: - **UIKit**:iOS应用主要基于UIKit框架构建,它提供了大量的UI控件和工具,如UILabel、UIButton、...
由于我们使用了ARC,编译器会自动处理对象的引用计数,确保在适当的时候释放内存。但是,仍需注意避免循环引用,尤其是在设置代理或者使用强引用时。 6. **扩展与优化** 为了更好地适应项目需求,我们可以考虑...
1. **ARC**:自动引用计数,由编译器自动管理对象的引用计数。 2. **手动管理**:程序员需要显式地调用`retain`和`release`方法来管理对象的生命周期。 3. **优点**:ARC 减少了内存泄漏和过早释放的风险,提高了...
ARC(Automatic Reference Counting,自动引用计数)是随着iOS 5一同推出的,它有效地避免了由于忘记释放内存而导致的常见内存泄漏问题。ARC自动处理`retain`和`release`的过程,因此开发者无需手动介入。 例如,...
ARC是Objective-C的内存管理机制,自动跟踪并管理对象的引用计数。开发人员无需手动调用`retain`, `release`, 或 `autorelease`。 ### 7. UI框架 Objective-C中的UIKit框架提供了创建iOS用户界面所需的各种类。如`...
5. **ARC(Automatic Reference Counting)**:随着iOS 5的发布,苹果引入了ARC机制,这是一种自动管理内存的技术,可以自动追踪对象的引用计数,从而避免了手动管理内存带来的困扰,大大降低了内存泄漏的风险。...