Xcode Debugger: 변수 값 보기
UITableView 컨트롤러의 내 코드:
delegate.myData = [myData objectAtIndex:indexPath.row];
의 값을 확인하려면 어떻게 해야 합니까?delegate.myData
또는indexPath.row
디버거에서? delegate.myData
과 배이어합을 .indexPath.row
하나의int
만 볼 수.delegate
그리고.indexPath
는 어디에 있습니까?myData
그리고.row
?
Xcode 디버거에서 NSDictionary 변수의 내용을 보는 방법을 선택하십시오.
사용하기도 합니다.
po variableName
print variableName
콘솔에서
당신의 경우에는 실행이 가능합니다.
print [myData objectAtIndex:indexPath.row]
또는
po [myData objectAtIndex:indexPath.row]
저는 Xcode가 개발 환경으로서 변수를 쉽게 디버깅할 수 있는 방법을 포함해야 한다는 다른 포스터에 동의합니다.좋은 소식이 있습니다!
Xcode에서 변수를 디버깅하는 방법에 대한 간단한 답변/자습서를 검색했지만 찾지 못한 후 Xcode 자체를 탐색해보니 (적어도 나에게는) 매우 유용한 발견이었습니다.
Xcode 4.6.3에서 변수를 쉽게 디버그하는 방법
Xcode의 메인 화면에서 스크린샷에 표시된 오른쪽 상단 모서리 버튼을 클릭하여 하단 디버그 영역을 확인합니다.
이제 코드 영역의 테두리를 클릭하여 프로그램을 일시 중지할 코드의 줄인 중단점을 설정합니다.
이제 디버그 영역에서 이 단추를 찾고 가운데 단추를 클릭합니다.이제 영역이 둘로 나뉘어져 있습니다.
이제 응용프로그램을 실행합니다.
프로그램을 실행하는 동안 첫 번째 중단점에 도달하면 왼쪽에 해당 중단점에서 사용할 수 있는 모든 변수가 표시됩니다.
자세한 내용을 보려면 변수의 왼쪽 화살표를 확장할 수 있습니다.검색 필드를 사용하여 원하는 변수를 분리하고 중단점 범위에 "들어감"에 따라 실시간으로 변경되는 것을 확인할 수도 있습니다.
디버그 영역의 오른쪽에서 원하는 변수 위에 마우스 오른쪽 버튼을 클릭하여 원하는 변수를 인쇄하도록 보낼 수 있습니다.
보시다시피 상황에 맞는 메뉴에는 매우 흥미로운 디버깅 옵션이 가득합니다.입력된 명령어로 이미 제안된 Watch나 변수의 런타임 값을 변경하는 Edit Value 등입니다.
또한 다음을 수행할 수 있습니다.
- 중단점을 설정하여 실행을 일시 중지합니다.
- 개체는 실행 범위 내에 있어야 합니다.
- 개체 또는 변수 위로 마우스 포인터 이동
- 노란색 도구 설명이 나타납니다.
- 도구 설명 위로 마우스 이동
- 위쪽과 아래쪽을 가리키는 두 개의 작은 화살표를 클릭합니다.
- 상황에 맞는 메뉴가 팝업됩니다.
- 설명 인쇄를 선택하면 [객체 설명]이 실행됩니다.
- 설명이 콘솔의 출력에 나타납니다.
IMHO는 약간 숨어서 귀찮은...
선언된 특성이 (필수적으로 같은 이름의) (인스턴스) 변수가 아니라는 사실에서 혼란이 발생합니다.
그 표현은
indexPath.row
와 동등합니다.
[indexPath row]
그리고 그 과제는
delegate.myData = [myData objectAtIndex:indexPath.row];
와 동등합니다.
[delegate setMyData:[myData objectAtIndex:[indexPath row]]];
합성된 특성에 대한 표준 명명을 가정합니다.
더나가아,,delegate
아마도 유형으로 선언될 것입니다.id<SomeProtocol>
즉, 컴러는실에 대한 실제 유형 .delegate
이 시점에서 디버거는 컴파일 시 제공되는 정보에 의존합니다. 때부터id
일반 유형이므로, 인스턴스 변수에 대한 컴파일 시간 정보가 없습니다.delegate
.
그게 당신이 보지 못하는 이유입니다.myData
또는row
변수로
, "/FONT CHANGE:/FONT CHANGE: "/ "/FONT CHANGE:-row
또는-myData
명령어 " 을사수할있다니습용"를 할 수 .p
또는po
:
p (NSInteger)[indexPath row]
po [delegate myData]
창을 를 들어,이 자신의 표현식을 ).delegate
유형의 제실 유입니다입니다.MyClass *
▁express다▁an라는 표현을 추가할 수 .(MyClass *)delegate
또는 마우스 오른쪽 버튼 클릭delegate
,선택하세요.View Value as…
하고 실제 합니다.delegate
(예:)MyClass *
).
그렇긴 하지만, 저는 디버거가 더 도움이 될 수 있다는 것에 동의합니다.
디버거 창에 컴파일 시간 정보 대신 런타임 유형 정보를 사용하도록 지시하는 옵션이 있을 수 있습니다.그것은 디버거의 속도를 늦출 수 있지만 유용한 정보를 제공할 것입니다.
선언된 속성은 속성이라는 그룹에 표시될 수 있으며 디버거 창에서 직접 (선택 사항) 검사를 수행할 수 있습니다.이렇게 하면 정보를 얻기 위해 메시지를 보내거나 메서드를 실행해야 하기 때문에 디버거의 속도가 느려질 수 있지만 유용한 정보도 제공할 수 있습니다.
런타임에 콘솔 창에 값을 인쇄할 수 있습니다.다음은 단계입니다.
- 값을 가져올 중단점 배치
- 이제 단계별 디버그를 수행합니다.
- 런타임에 값을 확인할 변수/대리인에게 커서를 놓습니다.
- 이제 변수/딜러에 대한 설명이 표시됩니다.
- "i"를 클릭하면 자세한 설명이 표시됩니다.
- 콘솔 창에도 세부 정보가 인쇄됩니다.
이것은 좀 복잡해집니다.이러한 객체는 사용자 지정 클래스 또는 구조체이며, 내부를 들여다보는 것은 다른 개발 환경에서만큼 Xcode에서 쉽지 않습니다.
내가 당신이라면, 당신이 보고 싶어하는 값들을 몇 가지 설명과 함께 NSL로 기록할 것입니다.
예:
NSLog(@"Description of object & time: %i", indexPath.row);
실행 시도 ->표시 ->표현식
배열 이름 또는 원하는 항목을 입력합니다.
코드 편집기 아래에 있는 디버그 영역을 마우스 오른쪽 단추로 클릭하고 식 추가...를 선택합니다.상황에 맞는 메뉴 항목.여기에 변수를 입력합니다(예:delegate.myData
그리고 이것이 마지막입니다.
언급URL : https://stackoverflow.com/questions/4735156/xcode-debugger-view-value-of-variable
'programing' 카테고리의 다른 글
VB에 폴더가 없는 경우 폴더를 만들려면 어떻게 해야 합니까? (0) | 2023.05.12 |
---|---|
사용자 지정 개체가 포함된 NSMutableArray를 정렬하려면 어떻게 해야 합니까? (0) | 2023.05.12 |
Postgres "psql이 내부 또는 외부 명령으로 인식되지 않음" (0) | 2023.05.12 |
Azure ASP .net WebApp 요청 시간이 초과되었습니다. (0) | 2023.05.12 |
C#과의 차이점은 무엇입니까?NET? (0) | 2023.05.12 |