// // NGAStringAdditions.m // P4ObjectLayer // // Created by Michael Bishop on 8/3/10. // Copyright 2010 Numerical Garden, LLC. All rights reserved. // #import "NSString+NGAAdditions.h" @implementation NSString (NGAAdditions) -(NSString*)NGA_stringByConvertingFirstWordToLowerCase { NSScanner * scanner = [NSScanner scannerWithString:self]; NSString * upperCasePrefix = nil; BOOL success = [scanner scanCharactersFromSet:[NSCharacterSet uppercaseLetterCharacterSet] intoString:&upperCasePrefix]; NSString * result = self; // There were no uppercase characters if ( success ) result = [self stringByReplacingCharactersInRange:NSMakeRange(0, [upperCasePrefix length]) withString:[upperCasePrefix lowercaseString]]; return result; } -(NSString*)NGA_stringByConvertingFirstCharacterToUpperCase { NSString * firstCharacter = [[self substringToIndex:1] uppercaseString]; return [firstCharacter stringByAppendingString:[self substringFromIndex:1]]; } -(NSString*)NGA_stringByAddingKeyPath:(NSString*)keyPath { if ( !keyPath ) return [[self autorelease] retain]; return [self stringByAppendingFormat:@".%@", keyPath]; } -(NSString*)NGA_stringBySubstitutingVariables:(NSDictionary*)variables prefix:(NSString*)prefix { NSMutableString * string = [[self mutableCopy] autorelease]; for (NSString * key in [variables allKeys]) { [string replaceOccurrencesOfString:[prefix stringByAppendingString:key] withString:[variables objectForKey:key] options:NSCaseInsensitiveSearch range:NSMakeRange(0, string.length)]; } return [string stringByReplacingOccurrencesOfString:[prefix stringByAppendingString:prefix] withString:prefix]; } @end