Skip to main content

Posts

Showing posts from August, 2012

Symbolicate Crash Log

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash -v myCrash.crash myApp.app

Quick and easy debugging of unrecognized selector sent to instance

It’s happened to all of us; we’re merrily trucking down the development road, building and testing our app when all of sudden everything grinds to a screeching halt and the console tells us something like:

-[MoneyWellAppDelegate doThatThingYouDo]: unrecognized selector sent to instance 0xa275230

The good news is there is a better way. All you need to do is pop over to the Breakpoint Navigator, click the + button at the bottom and choose Add Symbolic Breakpoint…

CORE FRUITION

CocoaHTTPServer

CocoaHTTPServer is a small, lightweight, embeddable HTTP server for Mac OS X or iOS applications.

Sometimes developers need an embedded HTTP server in their app. Perhaps it's a server application with remote monitoring. Or perhaps it's a desktop application using HTTP for the communication backend. Or perhaps it's an iOS app providing over-the-air access to documents. Whatever your reason, CocoaHTTPServer can get the job done. It provides:


Built in support for bonjour broadcastingIPv4 and IPv6 supportAsynchronous networking using GCD and standard socketsPassword protection supportSSL/TLS encryption supportExtremely FAST and memory efficientExtremely scalable (built entirely upon GCD)Heavily commented codeVery easily extensibleWebDAV is supported too!GitHub

Google Drive versus Dropbox

Sequel Pro

Best Looking MySQL Cocoa App.

Sequel Pro is a fast, easy-to-use Mac database management application for working with MySQL databases.

Sequel Pro

Method swizzling with Objective C

#import objc/runtime.h
#import objc/message.h

void MethodSwizzle(Class c, SEL orig, SEL new)
{
    Method origMethod = class_getInstanceMethod(c, orig);
    Method newMethod = class_getInstanceMethod(c, new);
    if(class_addMethod(c, orig, method_getImplementation(newMethod), method_getTypeEncoding(newMethod)))
        class_replaceMethod(c, new, method_getImplementation(origMethod), method_getTypeEncoding(origMethod));
    else
        method_exchangeImplementations(origMethod, newMethod);
}