Object links and minor refactoring

Object links now displayed as MyClassName(somePropertyValue, someOtherPropertyValue […])
Within an object link, arrays, object links, dates and bools receive special formatting
Formatting split out to separate method, which calls itself for object links (but only one level of recursion)
I see what you mean. We are dealing with NSNumber bools here and not BOOL. However, casting it to BOOL does seem to work:

-(NSString *)test1Bool:(id)aBool {
    return (BOOL)aBool ? @"TRUE" : @"FALSE";
}

-(NSString *)test2Bool:(id)aBool {
    return (aBool != nil) ? @"TRUE" : @"FALSE";
}

-(NSString *)test3Bool:(id)aBool {
    return [(NSNumber *)aBool boolValue] ? @"TRUE" : @"FALSE";
}

-(NSString *)test4Bool:(id)aBool {
    if (!aBool) {
        return @"-----";
    }
    return [(NSNumber *)aBool boolValue] ? @"TRUE" : @"FALSE";
}

-(NSString *)test5Bool:(id)aBool {
    // Catches both aBool == nil and aBool.class != NSNumber
    if (![aBool isKindOfClass:[NSNumber class]]) {
        return @"-----";
    }
    return [(NSNumber *)aBool boolValue] ? @"TRUE" : @"FALSE";
}

with output:

2014-08-05 20:02:05.485 Realm Browser[10103:303] == Test1 ==
2014-08-05 20:02:05.486 Realm Browser[10103:303] nil: FALSE
2014-08-05 20:02:05.486 Realm Browser[10103:303] @NO: FALSE
2014-08-05 20:02:05.486 Realm Browser[10103:303] @YES: TRUE
2014-08-05 20:02:05.486 Realm Browser[10103:303] == Test2 ==
2014-08-05 20:02:05.486 Realm Browser[10103:303] nil: FALSE
2014-08-05 20:02:05.486 Realm Browser[10103:303] @NO: TRUE
2014-08-05 20:02:05.486 Realm Browser[10103:303] @YES: TRUE
2014-08-05 20:02:05.486 Realm Browser[10103:303] == Test3 ==
2014-08-05 20:02:05.486 Realm Browser[10103:303] nil: FALSE
2014-08-05 20:02:05.487 Realm Browser[10103:303] @NO: FALSE
2014-08-05 20:02:05.487 Realm Browser[10103:303] @YES: TRUE
2014-08-05 20:02:05.487 Realm Browser[10103:303] == Test4 ==
2014-08-05 20:02:05.487 Realm Browser[10103:303] nil: -----
2014-08-05 20:02:05.487 Realm Browser[10103:303] @NO: FALSE
2014-08-05 20:02:05.487 Realm Browser[10103:303] @YES: TRUE
2014-08-05 20:02:05.487 Realm Browser[10103:303] == Test5 ==
2014-08-05 20:02:05.487 Realm Browser[10103:303] nil: -----
2014-08-05 20:02:05.487 Realm Browser[10103:303] @NO: FALSE
2014-08-05 20:02:05.488 Realm Browser[10103:303] @YES: TRUE

There is another problem though, nil and @NO give the same output, nil should probably give "" instead. So i propose using 4 or five instead. Casting to BOOL is wrong, even if it works.