Я хочу иметь возможность отлаживать структуры C без необходимости явно вводить каждое свойство, из которого они состоят.
т.е. я хочу иметь возможность сделать что-то вроде этого:
CGPoint cgPoint = CGPointMake(0,0);
NSLog(@"%@",cgPoint);
Очевидно, что «% @» не будет работать, поэтому вопрос.
c
objective-c
cocoa
cocoa-touch
mazniak
источник
источник
Ответы:
Вы можете попробовать это:
UIKit предоставляет ряд функций , которые преобразуют различные структуры CG в
NSString
s. Причина, по которой это не работает, состоит в том, что%@
означает объект. ACGPoint
является структурой C (как иCGRect
s иCGSize
s).источник
NSPoint
и затем вызватьNSStringFromPoint
. Например:NSStringFromPoint(NSPointFromCGPoint(point))
Есть несколько функций, таких как:
Пример:
источник
источник
Я использую следующий макрос, чтобы помочь мне с NSRect:
Вы можете сделать что-то подобное для CGPoint:
Используя это следующим образом:
Будет производить следующее:
источник
Вы можете использовать
NSValue
для этого. NSValue объект является простым контейнером для одного или C элемента данных Objective-C. Он может содержать любой из скалярных типов, таких как int, float и char, а также указатели, структуры и идентификаторы объектов.Пример:
ВЫВОД :
NSPoint: {10, 30}
Надеюсь, это поможет вам.
источник
Так как неработающий RSS в Stack Overflow воскресил для меня этот вопрос, вот мое почти общее решение: JAValueToString
Это позволяет вам писать
JA_DUMP(cgPoint)
иcgPoint = {0, 0}
регистрироваться.источник
Да, вы можете использовать ниже несколько функций, таких как: Сначала вы должны преобразовать структуру CGPoint в строку, см. Пример
Например:
Нравится...
источник
источник