さて、NSStringをプロパティとして保持すること、たくさんありますよね。Googleのコーディング規約にもcopyにするよう書いてあります。 自分もそうしていたのですが、なぜそうしなければいけないのかというところまで考えないエンジニア失格状態だったのでちゃんと考えてみました。 さて、そもそもcopyメソッドとは何なのか? copyメソッド copyメソッドはNSObjectで定義されているのですが、copyメソッドを呼ぶとcopyWithZone:メソッドが内部的に呼ばれるようになっています。 APIリファレンスを見るとしっかりと書かれています。 Return Value The object returned by the NSCopying protocol method copyWithZone:,. copyWithZone:メソッドはNSCopyingプロトコルのメソッドです
![なぜNSStringをプロパティにする際にcopyオプションを選択すべきなのか - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/cb1cdd4159a9f01c4d6c55bc5b96bce7750b6ebd/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgxJUFBJUUzJTgxJTlDTlNTdHJpbmclRTMlODIlOTIlRTMlODMlOTclRTMlODMlQUQlRTMlODMlOTElRTMlODMlODYlRTMlODIlQTMlRTMlODElQUIlRTMlODElOTklRTMlODIlOEIlRTklOUElOUIlRTMlODElQUJjb3B5JUUzJTgyJUFBJUUzJTgzJTk3JUUzJTgyJUI3JUUzJTgzJUE3JUUzJTgzJUIzJUUzJTgyJTkyJUU5JTgxJUI4JUU2JThBJTlFJUUzJTgxJTk5JUUzJTgxJUI5JUUzJTgxJThEJUUzJTgxJUFBJUUzJTgxJUFFJUUzJTgxJThCJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1mMjU1YmY1ZTYwMjYxODg1ZmE4YzRiY2NmM2JkMjViYQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbW90b2tpZWUmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTc4NDYyMWY2NDQzYWVlMjU2NTY1MzAyODE1ZTVkYTU4%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D8d08a2421496b12168675b6c75c34fad)