>  Q&A  >  본문

objective-c - iOS 深浅拷贝?

NSString *i = @"1";
NSString *j = [i mutableCopy];
NSLog(@"i=%p,j=%p",i,j);

打印地址不一样,由此可见是内容拷贝
继续
i = @"2";
NSLog(@"i=%@,j=%@",i,j);
那么问题来了,为什么j的值还是1?
PHP中文网PHP中文网2727일 전847

모든 응답(3)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-05-02 09:38:07

    콘텐츠 카피는 딥 카피입니다. 새로 생성된 j는 새로운 객체이며 i와는 아무런 관련이 없습니다. 따라서 i를 변경해도 j에는 영향을 미치지 않습니다.

    회신하다
    0
  • 为情所困

    为情所困2017-05-02 09:38:07

    주소가 다르다는 것은 두 개의 객체가 있다는 것을 의미합니다. 그렇다면 질문은 왜 두 개의 독립된 객체 사이의 값이 여전히 관련되어 있습니까?

    회신하다
    0
  • PHP中文网

    PHP中文网2017-05-02 09:38:07

    알겠습니다. 먼저 정보를 확인해 보겠습니다

    회신하다
    0
  • 취소회신하다