Skip to content

Debugging made easy. Automatically create QuickLook images of custom objects

License

Notifications You must be signed in to change notification settings

Patrick-Kladek/CocoaDebugKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CocoaDebugKit

Twitter: @PatrickKladek License Build Platform Tested Carthage compatible

Debugging made easy. Automatically create QuickLook images of custom objects.

This project helps developers to visualize custom objects and will therefore speed up your development process.

Lets say we have a custom Object called "Person" and want to inspect all variables in Xcode. This will look something like that:

alt text

With CocoaDebugKit it will look like this:

alt text

So how can we achieve this goal? It´s easy just add this Framework to your Project and implement this method in your custom object:

#import "Person.h"
#import <CocoaDebugKit/CocoaDebugKit.h>


@implementation Person

- (id)debugQuickLookObject
{
    return [CocoaDebugView debugViewWithAllPropertiesOfObject:self includeSuperclasses:YES];
}

@end

After that set a breakpoint in your code, select an object you want to inspect and hit space. This will open a small quicklook popover with the contents of your object.

Requirements

  • macOS 10.9+
  • iOS 8+
  • Xcode 11+

Installation

The prefered way to use CocoaDebugKit is via Carthage. Simply add this line to your cartfile:

github "Patrick-Kladek/CocoaDebugKit"

and run:

carthage update --platform ios

Known Limitations

  • NSObject rootclass required
  • Cocoa Runtime

Both of these limitations don't prevent you from using CocoaDebugKit. You can always create the debugView manually:

- (id)debugQuickLookObject
{
    CocoaDebugView *view = [CocoaDebugView debugView];

    [view addLineWithDescription:@"Image:" image:self.image];
    [view addLineWithDescription:@"First Name:" string:self.firstName];
    [view addLineWithDescription:@"Last Name:" string:self.lastName];
    [view addLineWithDescription:@"Birthday" date:self.birthday];

    return view;
}

Note

On iOS returning a UIView subclass to QuickLook may result in an empty preview. To fix this simply return an image.

return [[CocoaDebugView debugViewWithAllPropertiesOfObject:self includeSuperclasses:YES] imageRepresentation];

About

Debugging made easy. Automatically create QuickLook images of custom objects

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published