gpt4 book ai didi

iphone - 是否可以说名称包含 new、alloc、create 或 copy 的方法不会自动释放它们创建的对象?

转载 作者:行者123 更新时间:2023-12-03 20:20:02 25 4
gpt4 key购买 nike

据我所知,只有“方便”方法会返回带有 -autorelease 的创建对象,因此接收者不负责该对象的内存。但是因为苹果说当你使用一个名称由“new”、“alloc”、“create”或“copy”组成的方法时,你有责任释放该方法返回的对象,我认为这些方法应该不 -autorelease 这些对象。否则,它们将是“方便的”,并且只要接收者不保留接收到的对象,他就根本不承担任何责任。我做对了吗?

最佳答案

经验法则是您拥有(因此必须释放)您拥有的任何对象

  • alloc(使用以“alloc”或“new”开头的方法*)
  • 复制(使用任何包含“复制”一词的方法)
  • 明确保留自己

*new 将 alloc 和 init 组合到一个方法中。

便捷方法返回自动释放的对象。这些对于您接收它们的方法的范围有效,并且可以传递回调用方法(通常)。如果您想让它们保留更长的时间,您需要保留它们。

关于iphone - 是否可以说名称包含 new、alloc、create 或 copy 的方法不会自动释放它们创建的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/811547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com