NSLog의 구문에 대해 약간 혼란 스럽습니다. 예를 들어, NSLog 포인터 구문
NSString *nameString = @"Name"; NSLog(@"nameString is: %@", nameString);내 이해가 정확하면 (아주 잘 될 수도 있음), nameString은 String에 대한 포인터로 정의됩니다. 나는 nameString이 가지고있는 메모리 주소를 출력 할 것이고 그 주소의 값은 출력하지 않을 것이라고 생각했다. 그래서 NSLog 문에서 포인터의 값을 얻으려면 nameString이 가리키는 것과 같은 것을 액세스하려면 별표 표기법을 사용해야합니다.
NSLog(@"nameString is: %@", *nameString);? C로 프로그래밍 한 이래로 약간의 시간이 걸렸지 만 Objective-C는 C의 수퍼 세트이기 때문에 유사하게 동작 할 것이라고 생각했습니다.
설명을 크게 높이세요! 감사!
메모리 주소를보고 싶다면 –
감사합니다.하지만이 경우 nameString (포인터)이 가리키고있는 메모리 주소로 이동 한 이유에 대한 설명을 얻으려고했습니다. 거기에 (이 경우 문자열 "Name"). 나는 이것이 왜 효과가 있는지 이해하지 못한다. –
'... % @ ", nameString]'는 [nameString description]'으로 확장됩니다. –