【问题标题】:Create a copy of a NSObject创建一个 NSObject 的副本
【发布时间】:2010-09-13 01:19:56
【问题描述】:

如何获取我设置了所有属性的 NSObject,然后将其复制到数组可以使用的另一个内存块中,以便我可以重新使用原始内存块?

【问题讨论】:

    标签: iphone objective-c copy nsarray


    【解决方案1】:

    简而言之,你没有。

    如果你想把对象放在一个数组中,然后创建一个新对象,那就这样做吧; addObject: 到数组,alloc/init 一个新数组。

    如果您询问如何将对象复制到某处的随机malloc() 块中(例如,在数组中间),那么这是一个非常不同的问题。它可以在技术上完成,但基本上没有人这样做,因为框架和运行时不是为此而设计的。

    如果不了解您的具体需求,就不可能更详细。

    【讨论】:

    • 这是我开始的一个线程,tc 帮助我解决了问题,但一直没有帮助我:stackoverflow.com/questions/3697072/…
    • 好的——我明白你真正的问题是什么了。
    • 我现在想通了,但现在我泄露了一个日期对象。
    【解决方案2】:

    通过向对象发送copy 消息来复制对象。这仅适用于实现NSCopying 协议的类的实例。

    阅读Implementing Copy 以获得良好的概述。然后阅读Implementing NSCopying Considered Harmful 了解更多背景信息。

    【讨论】:

    • 这不能回答问题;他想将对象字节复制到一个数组中,然后重新使用原始对象。
    • 这确实回答了这个问题,因为 OP 并不特定于“字节复制”。这似乎是复制时的updated documentation(这很奇怪,因为latest revision 应该早于这个答案)。
    猜你喜欢
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 2020-08-24
    • 2017-08-13
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多