ios - 当传递给另一个 View Controller 时我应该复制一个对象吗

标签 ios objective-c memory-management

当我将对象变量发送到另一个 Controller 时,比如从菜单 Controller 中的数组到详细 View Controller 的 Parse PFObject,我应该在传递之前复制该对象吗?如果我只是将其分配给 senders 数组中的对象,它是弱引用吗?还是 ARC 会将其设为强引用?

- (IBAction)nextScreenButtonTapped:(id)sender
{
    DestinationViewController *destinationController = [[DestinationViewController alloc] init];
    //should I copy the item before assigning?  What does ARC do here?
    destinationController.item = [self.items objectAtIndex:someIndex];
    [self.navigationController pushViewController:destinationController animated:YES];
}  

最佳答案

如果您不希望 destinationController 拥有原始对象,请复制该对象。例如,如果您想确保新 Controller 不会修改原始 Controller ,则需要一份副本。

如果 item 属性声明为 strong,则引用是强引用。

关于ios - 当传递给另一个 View Controller 时我应该复制一个对象吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23781043/

相关文章:

iphone - 在 iOS 中检查互联网连接的最简单方法是什么?

iphone - 设置NSDocumentDirectory,使其不备份到iCloud

ios - 删除文件 :///prefix from URL path

c - 分配 char 数组期间出现 SIGABRT 错误

security - 如何提高 Delphi 中的内存安全性?

ios - 从 Swift 函数中的异步调用返回数据

ios - 根据对象参数 UPDATED Swift 从提取中删除重复对象

iphone - 向 CGMutableRefPath 添加边框颜色和圆角

objective-c - DynamoDB - 项目未上传

c - 为什么需要堆分配?