Objective-C のメモリ管理やオブジェクトのオーナーシップは、Objective-Cを始めるプログラマにとって、少なからず理解に苦しむこともあるようですが、今回はある程度理解したプログラマ向けの、 retain と copy の使い分け方を書こうと思います。 実は、この retain と copy の使い分け方は、Cocoa基礎ガイドにも載っています。 copyとretainの使用面における違いは、前者の場合、新しい所有者による単独使用のためにオブジェクトが要求されることです。新しい所有者は、コピー元に関係なく、コピーしたオブジェクトを変異させることができます。通常、オブジェクトを保持するのではなくコピーするのは、オブジェクトが値オブジェクトの場合、つまり何らかのプリミティブな値をカプセル化している場合です。このことは、オブジェクトがNSMutableStringなどのように可変(