NSLog C 구조(CGRect나 CGPoint 등)가 가능합니까?
모든 속성을 명시적으로 입력하지 않고 C 구조를 디버깅할 수 있도록 하고 싶다.
즉, 다음과 같은 작업을 수행할 수 있기를 원합니다.
CGPoint cgPoint = CGPointMake(0,0);
NSLog(@"%@",cgPoint);
분명히 '%@'은 작동하지 않습니다.그러므로 질문하겠습니다.
다음과 같이 시험해 보십시오.
NSLog(@"%@", NSStringFromCGPoint(cgPoint));
다양한 CG 구조를 다음과 같이 변환하는 UIKit에서 제공하는 많은 기능이 있습니다.NSString
s. 동작하지 않는 이유는%@
오브젝트를 나타냅니다.aCGPoint
C구조(C구조도 마찬가지)CGRect
및CGSize
s)
다음과 같은 기능이 몇 가지 있습니다.
NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets
예:
NSLog(@"rect1: %@", NSStringFromCGRect(rect1));
NSLog(@"%@", CGRectCreateDictionaryRepresentation(rect));
사용할 수 있습니다.NSValue
이걸 위해서.NSValue 개체는 단일 C 또는 Objective-C 데이터 항목을 위한 단순 컨테이너입니다.int, float, char 등의 스칼라 타입은 물론 포인터, 구조체, 오브젝트 ID를 포함할 수 있습니다.
예:
CGPoint cgPoint = CGPointMake(10,30);
NSLog(@"%@",[NSValue valueWithCGPoint:cgPoint]);
출력: NSPoint: {10, 30}
도움이 되길 바랍니다.
예, 다음과 같은 몇 가지 기능을 사용할 수 있습니다.먼저 CGPoint 구조를 문자열로 변환해야 합니다(예 참조).
1) NSStringFromCGPoint,
2) NSStringFromCGSize,
3) NSStringFromCGRect,
4) NSStringFromCGAffineTransform,
5) NSStringFromUIEdgeInsets,
예를 들어 다음과 같습니다.
1) NSLog(@"NSStringFromCGPoint = %@", NSStringFromCGRect(cgPointValue));
이렇게...
NSRect를 사용하기 위해 다음 매크로를 사용합니다.
#define LogRect(RECT) NSLog(@"%s: (%0.0f, %0.0f) %0.0f x %0.0f",
#RECT, RECT.origin.x, RECT.origin.y, RECT.size.width, RECT.size.height)
CGPoint에 대해서도 같은 작업을 수행할 수 있습니다.
@define LogCGPoint(POINT) NSLog(@"%s: (%0.0f, %0.0f)",
#POINT POINT.x, POINT.y);
다음과 같이 사용합니다.
LogCGPoint(cgPoint);
다음과 같은 결과를 얻을 수 있습니다.
cgPoint: (100, 200)
NSLog(@"%@",CGRectCreateDictionaryRepresentation(rect));
Stack Overflow의 고장난 RSS가 이 질문을 부활시켰기 때문에, 저의 일반적인 해결책은 다음과 같습니다.JAValueToString
이렇게 하면,JA_DUMP(cgPoint)
취득하다cgPoint = {0, 0}
기록되었습니다.
언급URL : https://stackoverflow.com/questions/550195/is-it-possible-to-nslog-c-structs-like-cgrect-or-cgpoint
'programing' 카테고리의 다른 글
소품이 바뀌었을 때 Vue child 컴포넌트가 재생되지 않았습니까? (0) | 2022.08.14 |
---|---|
List.of와 Arrays.asList의 차이점은 무엇입니까? (0) | 2022.08.14 |
SDL과 OpenGL이 관련된 이유 (0) | 2022.08.14 |
vue-module, nginx 및 직접 링크 (0) | 2022.08.14 |
Win32에서 서명되지 않은 int에 대한 더블캐스트가 2,147,483,648로 잘립니다. (0) | 2022.08.13 |