来自于保留和释放的前 ARC 思维方式,我试图在 ObjectiveC 中围绕 ARC 进行思考。
在 ARC 之前的日子里,任何返回新创建实例的方法都将使用自动释放池。
- (NSString *)description {
NSString *output = [NSString stringWithFormat:@"max size is: %d", maxSize];
return output;
}
保留它是这个新创建实例的工作的接收者。
我很好奇。在ARC世界,你能做到吗?
- (NSString *)description {
NSString *description = [[NSString alloc] initWithFormat:@"max size is: %d", maxSize];
return description;
}
这在技术上可行吗?合乎逻辑吗?我的意思是——感觉不对。它会干扰保留计数,不是吗?
我的问题也适用于不同的吸气剂。例如:
- (NSArray *)items {
return [NSArray arrayWithArray:items];
}
可
- (NSArray *)items {
return [[NSArray alloc] initWithArray:items];
}
我了解 ARC 为您添加了保留和释放消息。我很想了解在这些情况下这是如何工作的。