1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- //
- // Licensed under the terms in License.txt
- //
- // Copyright 2010 Allen Ding. All rights reserved.
- //
- #import "KWFormatter.h"
- @implementation KWFormatter
- #pragma mark - Getting Descriptions
- + (NSString *)formatObject:(id)anObject {
- if ([anObject isKindOfClass:[NSString class]])
- return [NSString stringWithFormat:@"\"%@\"", anObject];
- else if ([anObject isKindOfClass:[NSDictionary class]])
- return [anObject description]; // NSDictionary conforms to NSFastEnumeration
- else if ([anObject conformsToProtocol:@protocol(NSFastEnumeration)])
- return [self formattedCollection:anObject];
- return [anObject description];
- }
- + (NSString *)formatObjectIncludingClass:(id)anObject {
- NSString *classString = [[anObject class] description];
-
- if ([anObject isKindOfClass:[NSString class]])
- classString = @"NSString";
-
- return [NSString stringWithFormat:@"(%@) %@", classString, [self formatObject:anObject]];
- }
- #pragma mark - Internal Methods
- + (NSString *)formattedCollection:(id<NSFastEnumeration>)collection {
- NSMutableString *description = [[NSMutableString alloc] initWithString:@"("];
- NSUInteger index = 0;
-
- for (id object in collection) {
- if (index == 0)
- [description appendFormat:@"%@", [self formatObject:object]];
- else
- [description appendFormat:@", %@", [self formatObject:object]];
-
- ++index;
- }
-
- [description appendString:@")"];
- return description;
- }
- @end
|