我正在通过 2011 年出版的名为 Objective-C 基础知识的书学习 Objective-C。它正在构建一个简单的应用程序来介绍 iOS 概念并教授 Objective-C 语言。自本书出版以来,平台或语言似乎发生了一些变化。当我尝试从书中构建代码时(关键段落摘录如下),我收到了这个错误:
autorelease is unavailable: not available in automatic reference counting mode
ARC forbids explicit message send of 'autorelease'
错误消息出现在代码中实际使用自动释放的几行上方。
我只有大约 1 小时的 Objective-C 和 iOS 经验,所以我不知道如何解决这个问题,所以我可以继续阅读本书。任何帮助,将不胜感激。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil){ #### error message here
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier]autorelease]; ### autorelease used here
}
cell.textLabel.text = [NSString
stringWithFormat:@"Rental Property %d", indexPath.row];
NSLog(@"Rental Property %d", indexPath.row);
return cell;
}
如果我不能解决这些类型的小问题,那么我将无法跟随这本书。如果我可以使用某种版本系统(例如 rvm for Ruby)来避免此类问题,请告诉我。