읽기 전용 변수를 덮어 쓸 수있는 방법이 있습니까? 당신이이 lldb와 엑스 코드에 중단 점에서에서 다음을 수행 구조체읽기 전용 변수 오버라이드
struct Object {
let name: String
}
이 있다면
예를 들어
(lldb) expression object.name = "Tom"
내가 완전히 이유를 이해
error: <EXPR>:2:19: error: cannot assign to property: 'name' is a get-only property
가 발생합니다 디버깅 중에이 문제를 해결할 수있는 쉬운 방법이 있는지 알고 싶습니다.
이 스위프트 &에 유의하시기 바랍니다 하지 당신은 메모리를 덮어 문자열 값을 변경memory write {address}
lldb 명령을 사용할 수 있습니다
왜 읽기 전용 변수를 덮어 쓸 필요가 있습니까? 'Object'의 이름을 변경할 수 없다는 것을 알고 있기 때문에, 새로운'Object'를 초기화하지 않고 이름을 바꾸면 어떨까요? –
@Joe 디버깅하고 lldb를 사용할 때 런타임에 하나의 변수를 변경하여 다른 동작을 테스트하는 것이 유용하기 때문에 종종 유용합니다. 종속성 주입이 필요한 복잡한 객체가있는 경우 간단히 새 객체를 할당하는 것이 콘솔에서 더 복잡해집니다. – sbarow
그래서 let을 var로 변경하지 않으시겠습니까? – WMios