Ios NSMutableArray到UITableView
这可能是一个愚蠢的问题,但我对IPhone开发还不熟悉,不管怎样,我有一个Ios NSMutableArray到UITableView,ios,objective-c,uitableview,Ios,Objective C,Uitableview,这可能是一个愚蠢的问题,但我对IPhone开发还不熟悉,不管怎样,我有一个NSMutableArray,其中包含从服务器加载的信息。我正试图把这些信息摆在桌面上。我四处寻找一些关于如何做到这一点的想法,我遇到了很多人似乎都在使用的代码: - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [myArray count]; } - (UITabl
NSMutableArray
,其中包含从服务器加载的信息。我正试图把这些信息摆在桌面上。我四处寻找一些关于如何做到这一点的想法,我遇到了很多人似乎都在使用的代码:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [myArray count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
if (!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"] autorelease];
}
cell.textLabel.text = [myArray objectAtIndex:[indexPath row]];
NSLog(@"Cell is %@", [myArray objectAtIndex:indexPath.row]);
return cell;
}
现在我的问题在if语句中,它给了我两个关于自动释放的错误:在引用计数模式下不可用和不可用,arc禁止自动释放的消息发送,有什么想法吗??感谢您的帮助您拥有的代码是较旧的代码,仅适用于手动参考计数(MRC)。较新的项目默认使用自动引用计数(ARC)。只需删除对
自动释放的调用即可
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"];
您使用的是自动引用计数,它负责内存管理(大部分)。删除对手动内存管理的所有引用,如自动释放
(和保留
,释放
等),应用程序将生成。请在下面使用此选项:
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"];
}
这也可以使用免费提供的Sensive TableView框架轻松完成。他们有一个叫做ArrayOfObjectsSection的东西,您只需将NSArray传递给它,它就会自动显示它,以及其他许多东西(包括为您完成服务器抓取) 这是一个简单的教程链接,用于将NSMutableArray添加到tableView中……希望对您有用。听起来您是在启用ARC的情况下编译的。如果是这样,请删除autorelease
调用。您正在盲目复制一个使用旧式垃圾收集的示例,但您正在构建启用了“ARC”(自动引用计数)的示例。您正在使用ARC模式。只需删除自动恢复。@HotLicks因为这是iOS,你的意思是手动引用计数,而不是垃圾收集。它现在可以编译了,但由于某些原因,表中没有任何内容,它会给我一个警告,我在声明单元格时说tableView的本地声明隐藏了实例变量。这可能是问题所在吗?