Automate box any value! Print log without any format control symbol! Change debug habit thoroughly!
Automate box any value! Print log without any format control symbol! Change debug habit thoroughly!
You only need drag LxDBAnything.h to your project.
pod 'LxDBAnything', '~> 1.1.1'
Minimum support iOS version: iOS 6.0
#import "LxDBAnything.h"
id obj = self.view;
LxDBAnyVar(obj);
CGPoint point = CGPointMake(12.34, 56.78);
LxDBAnyVar(point);
CGSize size = CGSizeMake(87.6, 5.43);
LxDBAnyVar(size);
CGRect rect = CGRectMake(2.3, 4.5, 5.6, 7.8);
LxDBAnyVar(rect);
NSRange range = NSMakeRange(3, 56);
LxDBAnyVar(range);
CGAffineTransform affineTransform = CGAffineTransformMake(1, 2, 3, 4, 5, 6);
LxDBAnyVar(affineTransform);
UIEdgeInsets edgeInsets = UIEdgeInsetsMake(3, 4, 5, 6);
LxDBAnyVar(edgeInsets);
SEL sel = @selector(viewDidLoad);
LxDBAnyVar(sel);
Class class = [UIBarButtonItem class];
LxDBAnyVar(class);
NSInteger i = 231;
LxDBAnyVar(i);
CGFloat f = M_E;
LxDBAnyVar(f);
BOOL b = YES;
LxDBAnyVar(b);
char c = 'S';
LxDBAnyVar(c);
CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();
LxDBAnyVar(colorSpaceRef);
// ......
LxPrintAnything(You can use macro LxPrintAnything() print any without quotation as you want!);
LxPrintf(@"Print format string you customed: %@", LxBox(affineTransform));
NSLog(@"Even use general NSLog function to print: %@", LxBox(edgeInsets));
LxPrintf(@"The type of obj is %@", LxTypeStringOfVar(obj));
LxPrintf(@"The type of point is %@", LxTypeStringOfVar(point));
LxPrintf(@"The type of size is %@", LxTypeStringOfVar(size));
LxPrintf(@"The type of rect is %@", LxTypeStringOfVar(rect));
LxPrintf(@"The type of range is %@", LxTypeStringOfVar(range));
LxPrintf(@"The type of affineTransform is %@", LxTypeStringOfVar(affineTransform));
LxPrintf(@"The type of edgeInsets is %@", LxTypeStringOfVar(edgeInsets));
LxPrintf(@"The type of class is %@", LxTypeStringOfVar(class));
LxPrintf(@"The type of i is %@", LxTypeStringOfVar(i));
LxPrintf(@"The type of f is %@", LxTypeStringOfVar(f));
LxPrintf(@"The type of b is %@", LxTypeStringOfVar(b));
LxPrintf(@"The type of c is %@", LxTypeStringOfVar(c));
LxPrintf(@"The type of colorSpaceRef is %@", LxTypeStringOfVar(colorSpaceRef));
// ......
TestModel * testModel = [[TestModel alloc]init];
testModel.array = @[@1, @"fewfwe", @{@21423.654:@[@"fgewgweg", [UIView new]]}, @YES];
testModel.dictionary = @{@YES:@[[UITableViewCell new], @"fgewgweg", @-543.64]};
testModel.set = [NSSet setWithObjects:@NO, @4.325, @{@"fgewgweg":[UIView new]}, nil];
testModel.orderSet = [NSOrderedSet orderedSetWithObjects:@{@21423.654:@[@"fgewgweg", [UIView new]]}, @1, @"fewfwe", @YES, nil];
LxDBObjectAsJson(testModel);
LxDBObjectAsXml(testModel);
LxDBViewHierarchy(self.view.window);
// Run your application and you'll see:
๐-[ViewController viewDidLoad] + 24๐ obj = <UIView: 0x7ff8ba711fb0; frame = (0 0; 414 736); autoresize = W+H; layer = <CALayer: 0x7ff8ba710da0>>
๐-[ViewController viewDidLoad] + 27๐ point = NSPoint: {12.34, 56.780000000000001}
๐-[ViewController viewDidLoad] + 30๐ size = NSSize: {87.599999999999994, 5.4299999999999997}
๐-[ViewController viewDidLoad] + 33๐ rect = NSRect: {{2.2999999999999998, 4.5}, {5.5999999999999996, 7.7999999999999998}}
๐-[ViewController viewDidLoad] + 36๐ range = NSRange: {3, 56}
๐-[ViewController viewDidLoad] + 39๐ affineTransform = CGAffineTransform: {{1, 2, 3, 4}, {5, 6}}
๐-[ViewController viewDidLoad] + 42๐ edgeInsets = UIEdgeInsets: {3, 4, 5, 6}
๐-[ViewController viewDidLoad] + 45๐ sel = viewDidLoad
๐-[ViewController viewDidLoad] + 48๐ class = UIBarButtonItem
๐-[ViewController viewDidLoad] + 51๐ i = 231
๐-[ViewController viewDidLoad] + 54๐ f = 2.718281828459045
๐-[ViewController viewDidLoad] + 57๐ b = YES
๐-[ViewController viewDidLoad] + 60๐ c = S
๐-[ViewController viewDidLoad] + 63๐ colorSpaceRef = 0x7ff8ba706da0
๐-[ViewController viewDidLoad] + 67๐ You can use macro LxPrintAnything() print any without quotation as you want!
๐-[ViewController viewDidLoad] + 69๐ Print format string you customed: CGAffineTransform: {{1, 2, 3, 4}, {5, 6}}
2015-11-23 15:40:25.639 LxDBAnythingDemo[12699:198689] Even use normal NSLog function to print: UIEdgeInsets: {3, 4, 5, 6}
๐-[ViewController viewDidLoad] + 73๐ The type of obj is UIView
๐-[ViewController viewDidLoad] + 74๐ The type of point is CGPoint
๐-[ViewController viewDidLoad] + 75๐ The type of size is CGSize
๐-[ViewController viewDidLoad] + 76๐ The type of rect is CGRect
๐-[ViewController viewDidLoad] + 77๐ The type of range is NSRange
๐-[ViewController viewDidLoad] + 78๐ The type of affineTransform is CGAffineTransform
๐-[ViewController viewDidLoad] + 79๐ The type of edgeInsets is LxEdgeInsets
๐-[ViewController viewDidLoad] + 80๐ The type of class is Class
๐-[ViewController viewDidLoad] + 81๐ The type of i is long
๐-[ViewController viewDidLoad] + 82๐ The type of f is double
๐-[ViewController viewDidLoad] + 83๐ The type of b is BOOL
๐-[ViewController viewDidLoad] + 84๐ The type of c is char
๐-[ViewController viewDidLoad] + 85๐ The type of colorSpaceRef is pointer
๐-[ViewController viewDidLoad] + 95๐ <TestModel: 0x7ff8ba7113a0> = {
"affineTransform" : "CGAffineTransform: {{0, 0, 0, 0}, {0, 0}}",
"orderSet" : [
{
"21423.654" : [
"fgewgweg",
"<UIView: 0x7ff8ba713fc0; frame = (0 0; 0 0); layer = <CALayer: 0x7ff8ba714130>>"
]
},
"1",
"fewfwe"
],
"dictionary" : {
"1" : [
"<UITableViewCell: 0x7ff8ba7117e0; frame = (0 0; 320 44); layer = <CALayer: 0x7ff8ba711d20>>",
"fgewgweg",
"-543.64"
]
},
"flt" : "0",
"chr" : "0",
"size" : "NSSize: {0, 0}",
"edgeInsets" : "UIEdgeInsets: {0, 0, 0, 0}",
"set" : [
"0",
"4.325",
{
"fgewgweg" : "<UIView: 0x7ff8ba713d10; frame = (0 0; 0 0); layer = <CALayer: 0x7ff8ba713e80>>"
}
],
"bl" : "0",
"point" : "NSPoint: {0, 0}",
"array" : [
"1",
"fewfwe",
{
"21423.654" : [
"fgewgweg",
"<UIView: 0x7ff8ba7114e0; frame = (0 0; 0 0); layer = <CALayer: 0x7ff8ba70c680>>"
]
},
"1"
],
"range" : "NSRange: {0, 0}",
"integer" : "0",
"rect" : "NSRect: {{0, 0}, {0, 0}}"
}
๐-[ViewController viewDidLoad] + 96๐ <TestModel: 0x7ff8ba7113a0> = <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>affineTransform</key>
<string>CGAffineTransform: {{0, 0, 0, 0}, {0, 0}}</string>
<key>array</key>
<array>
<string>1</string>
<string>fewfwe</string>
<dict>
<key>21423.654</key>
<array>
<string>fgewgweg</string>
<string><UIView: 0x7ff8ba7114e0; frame = (0 0; 0 0); layer = <CALayer: 0x7ff8ba70c680>></string>
</array>
</dict>
<string>1</string>
</array>
<key>bl</key>
<string>0</string>
<key>chr</key>
<string>0</string>
<key>dictionary</key>
<dict>
<key>1</key>
<array>
<string><UITableViewCell: 0x7ff8ba7117e0; frame = (0 0; 320 44); layer = <CALayer: 0x7ff8ba711d20>></string>
<string>fgewgweg</string>
<string>-543.64</string>
</array>
</dict>
<key>edgeInsets</key>
<string>UIEdgeInsets: {0, 0, 0, 0}</string>
<key>flt</key>
<string>0</string>
<key>integer</key>
<string>0</string>
<key>orderSet</key>
<array>
<dict>
<key>21423.654</key>
<array>
<string>fgewgweg</string>
<string><UIView: 0x7ff8ba713fc0; frame = (0 0; 0 0); layer = <CALayer: 0x7ff8ba714130>></string>
</array>
</dict>
<string>1</string>
<string>fewfwe</string>
</array>
<key>point</key>
<string>NSPoint: {0, 0}</string>
<key>range</key>
<string>NSRange: {0, 0}</string>
<key>rect</key>
<string>NSRect: {{0, 0}, {0, 0}}</string>
<key>set</key>
<array>
<string>0</string>
<string>4.325</string>
<dict>
<key>fgewgweg</key>
<string><UIView: 0x7ff8ba713d10; frame = (0 0; 0 0); layer = <CALayer: 0x7ff8ba713e80>></string>
</dict>
</array>
<key>size</key>
<string>NSSize: {0, 0}</string>
</dict>
</plist>
๐-[ViewController viewDidAppear:] + 103๐self.view.window =
0๏ผ <UIWindow: 0x7ff8ba4306c0; frame = (0 0; 414 736); autoresize = W+H; gestureRecognizers = <NSArray: 0x7ff8ba431830>; layer = <UIWindowLayer: 0x7ff8ba42cd00>>
1๏ผ <UIView: 0x7ff8ba711fb0; frame = (0 0; 414 736); autoresize = W+H; layer = <CALayer: 0x7ff8ba710da0>>
2๏ผ <_UILayoutGuide: 0x7ff8ba712380; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x7ff8ba70c660>>
2๏ผ <_UILayoutGuide: 0x7ff8ba534d40; frame = (0 736; 0 0); hidden = YES; layer = <CALayer: 0x7ff8ba534ec0>>
// Different debug log experience!
LxDBAnything is available under the MIT License. See the LICENSE file for more info.