2017-04-09 14 views
0

나는 새로운 Objective-c 프로그래밍이다. 나는 NSStingNSMutableString에 대해 읽고있다. NSString은 기본적으로 변경할 수없는 문자열이지만 NSMutableString은 이름에서 알 수있는 것처럼 변경할 수 있습니다. 괜찮아요.하지만 변하기 쉽고 변경되지 않는 것을 알고 싶습니다. NSString의 모든 작업을 NSMutableString과 함께 수행 할 수 있다면 여전히 NSString이 더 이상 사용되지 않습니다. 아무도 나에게 명확하게 할 수 있니?NSMutableString으로 모든 작업을 수행 할 수 있다면 왜 NSString이 여전히 존재합니까?

+0

나는 you'r 질문에 이미 답변 [이 체크] 믿습니다 (http://stackoverflow.com/questions/16460779/what-is-actual-difference-between-nsstring-and-nsmutable-string-in-objective -cw) & [this] (http://stackoverflow.com/questions/1749571/what-is-the-purpose-of-having-both-nsmutablestring-and-nsstring) –

+0

응답에 @MahbubAhmed 및 @gema 감사합니다. 정말 도움이됩니다. 그래서 나는 기본적으로'NSString' 퍼포먼스를 현명하고 (컴파일러 관점에서 밸류 체크와 오버 헤드를위한 여분의 컨디셔닝을 제거했다.) 메모리 와이즈 NSString은 항상 새로운 할당 값에 대해 새로운 메모리를 생성한다고 설명했다. http://stackoverflow.com/questions/1749571/what-is-the-purpose-of-having-both-nsmutablestring-and-nsstring). –

답변

0

메모리 오버 헤드의 경우 성능에 관한 모든 것입니다. Apple에서 site

성능 또한 문자열 및 사전 같은 것을 나타내는 불변 버전의 개체에 대한 이유입니다. 문자열이나 사전과 같은 기본 엔티티를위한 변경 가능한 객체는 약간의 오버 헤드를 가져옵니다. 변경 가능한 백업 저장소를 동적으로 관리해야하므로 필요에 따라 메모리 덩어리를 할당 및 할당 취소 할 수 있습니다. 변경 가능한 개체는 변경 불가능한 개체보다 효율적이지 않을 수 있습니다.

따라서 NSString 인 변경 불가능한 버전이 중요합니다. 우리는 항상 코드 성능과 효율성을 염두에 두어야합니다.