Ios 这对tableview有效吗?

Ios 这对tableview有效吗?,ios,tableview,Ios,Tableview,我只是想澄清一下,这是在我的tableview中创建单元格标题数组的最简单、最有效的方法 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { contentArray = [[NSArray arrayWithObjects:@"Hi1", @"Hi2", @"Hi3", @"Hi4", @"Hi5", @"Hi6", @"Hi7", nil] retain]; r

我只是想澄清一下,这是在我的tableview中创建单元格标题数组的最简单、最有效的方法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

contentArray = [[NSArray arrayWithObjects:@"Hi1", @"Hi2", @"Hi3", @"Hi4", @"Hi5", @"Hi6", @"Hi7", nil] retain];
return [contentArray count];

[contentArray release];
}
我应该以另一种方式来做这件事,还是应该以最有效的方式来做?因为现在它有点滞后,我想让它快一点


谢谢

对方法的调用
tableView:numberofrowsinssection:
可以由不同的事件触发。每次调用都要创建数组,这会增加延迟。请尝试以下方法:

// .h file
@property (nonatomic, retain) NSArray *contentArray;

// .m file
@synthesize contentArray=_contentArray;

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [self.contentArray count];
}

-(void) viewDidLoad {
  self.contentArray = [NSArray arrayWithObjects:@"Hi1", @"Hi2", @"Hi3", @"Hi4", @"Hi5", @"Hi6", @"Hi7", nil];
  [super viewDidLoad];
}
-(void) dealloc {
    [_contentArray release]
    [super dealloc];
}

对方法
tableView:numberOfRowsInSection:
的调用可以由不同的事件触发。每次调用都要创建数组,这会增加延迟。请尝试以下方法:

// .h file
@property (nonatomic, retain) NSArray *contentArray;

// .m file
@synthesize contentArray=_contentArray;

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [self.contentArray count];
}

-(void) viewDidLoad {
  self.contentArray = [NSArray arrayWithObjects:@"Hi1", @"Hi2", @"Hi3", @"Hi4", @"Hi5", @"Hi6", @"Hi7", nil];
  [super viewDidLoad];
}
-(void) dealloc {
    [_contentArray release]
    [super dealloc];
}

这种方法对表视图的滚动性能几乎没有任何影响,因为调用它的次数非常有限(除非表包含数百或数千节)


也就是说,您的代码包含许多错误。首先,
return
下面的行永远不会执行,因此内存泄漏。其次,应该在方法外部创建数组,并使用属性来存储它。但这与性能关系不大,而与良好的编码风格关系更大。毕竟,您需要在多个方法中使用数组的内容。

您在该方法中所做的操作对表视图的滚动性能几乎没有任何影响,因为它的调用次数非常有限(除非您的表包含数百或数千节)


也就是说,您的代码包含许多错误。首先,
return
下面的行永远不会执行,因此内存泄漏。其次,应该在方法外部创建数组,并使用属性来存储它。但这与性能关系不大,而与良好的编码风格关系更大。毕竟,您需要以多种方法显示数组的内容。

Wow!在我使用了您共享的代码之后,我确实注意到了一个相当大的差异。谢谢你们,接受了答案并投了赞成票!!!哇!在我使用了您共享的代码之后,我确实注意到了一个相当大的差异。谢谢你们,接受了答案并投了赞成票!!!