답변:
Xcode 디버거에서 NSDictionary 변수의 내용을 보는 방법을 확인하십시오 .
나는 또한 사용
po variableName
print variableName
콘솔에서.
귀하의 경우에는 실행할 수 있습니다
print [myData objectAtIndex:indexPath.row]
또는
po [myData objectAtIndex:indexPath.row]
po obj
swift에 해당하는 것이 po print(obj)
.
나는 개발 환경으로서의 Xcode가 변수를 디버그하는 쉬운 방법을 포함해야한다는 다른 포스터에 동의합니다. 음, 좋은 소식이 하나 있습니다!
Xcode에서 변수를 디버깅하는 방법에 대한 간단한 답변 / 튜토리얼을 검색하고 찾지 못한 후 Xcode 자체를 탐색하여 (적어도 저에게는) 매우 유용한 발견을 발견했습니다.
Xcode의 메인 화면에서 스크린 샷에 표시된 오른쪽 상단 모서리 버튼을 클릭하여 하단 디버그 영역을 확인하십시오.
이제 코드 영역의 테두리를 클릭하여 프로그램을 일시 중지 할 코드 줄인 중단 점을 설정합니다.
이제 디버그 영역에서이 버튼을 찾아 중간에있는 버튼을 클릭합니다. 이제 지역이 둘로 나뉘어져 있음을 알 수 있습니다.
이제 애플리케이션을 실행하십시오.
프로그램 실행 중에 첫 번째 중단 점에 도달하면 해당 중단 점에서 사용할 수있는 모든 변수가 왼쪽에 표시됩니다.
더 자세한 정보를 위해 변수의 왼쪽 화살표를 확장 할 수 있습니다. 검색 필드를 사용하여 원하는 변수를 분리하고 중단 점 범위에 "들어가는"때 실시간으로 변경되는 것을 확인하십시오.
디버그 영역의 오른쪽에서 원하는 변수를 마우스 오른쪽 버튼으로 클릭하여 원하는대로 변수를 인쇄하도록 보낼 수 있습니다.
보시다시피 컨텍스트 메뉴에는 매우 흥미로운 디버깅 옵션이 가득합니다. 같은 시계 이미 입력 된 명령 또는으로 제안 된 그 값 편집 ... 그것은 당신의 변수의 런타임 값을 변경!
또한 다음을 수행 할 수 있습니다.
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
변수로.
-row
또는 전송 결과를 검사 -myData
하려면 명령 p
또는 po
다음을 사용할 수 있습니다 .
p (NSInteger)[indexPath row]
po [delegate myData]
또는 표현식 창을 사용합니다 (예를 들어 delegate
실제 유형 임을 알고 MyClass *
있는 경우 표현식을 추가하거나을 (MyClass *)delegate
마우스 오른쪽 버튼으로 클릭 하고 실제 유형 (예 :)을 delegate
선택 View Value as…
하고 입력 할 수 있습니다 .delegate
MyClass *
즉, 디버거가 더 도움이 될 수 있다는 데 동의합니다.
디버거 창에 컴파일 시간 정보 대신 런타임 유형 정보를 사용하도록 지시하는 옵션이있을 수 있습니다. 당연히 디버거 속도가 느려지지만 유용한 정보를 제공합니다.
선언 된 속성은 속성이라는 그룹에 표시 될 수 있으며 디버거 창에서 직접 검사 (선택 사항)를 허용 할 수 있습니다. 이것은 또한 정보를 얻기 위해 메시지를 보내거나 메소드를 실행해야하기 때문에 디버거 속도를 늦출 수 있지만 유용한 정보도 제공합니다.
런타임에 콘솔 창에 값을 인쇄 할 수 있습니다. 다음은 단계입니다.
이것은 조금 복잡해집니다. 이러한 객체는 사용자 정의 클래스 또는 구조체이며 Xcode에서 다른 개발 환경 에서처럼 내부를 보는 것은 쉽지 않습니다.
내가 당신이라면보고 싶은 값을 몇 가지 설명과 함께 NSLog합니다.
즉 :
NSLog(@"Description of object & time: %i", indexPath.row);
Run-> Show-> Expressions 시도
어레이의 이름이나 찾고있는 것을 입력하십시오.