mirror of
https://github.com/gnustep/apps-gorm.git
synced 2025-04-22 22:20:44 +00:00
Add NSString category
This commit is contained in:
parent
c84557c823
commit
12c4d66809
2 changed files with 55 additions and 0 deletions
12
GormCore/NSString+methods.h
Normal file
12
GormCore/NSString+methods.h
Normal file
|
@ -0,0 +1,12 @@
|
|||
// This file is under the terms of the GPLv3, See COPYING for details
|
||||
|
||||
#ifndef INCLUDED_NSString_methods_H
|
||||
#define INCLUDED_NSString_methods_H
|
||||
|
||||
@import <Foundation/NSString.h>
|
||||
|
||||
@interface NSString (methods}
|
||||
- (NSString *) splitCamelCaseString;
|
||||
@end
|
||||
|
||||
#endif
|
43
GormCore/NSString+methods.m
Normal file
43
GormCore/NSString+methods.m
Normal file
|
@ -0,0 +1,43 @@
|
|||
#import "NSString+methods.h"
|
||||
|
||||
// NSString category methods to add functionality to NSString
|
||||
|
||||
@implementation NSString (methods)
|
||||
|
||||
// Split a camel case string into a string with spaces
|
||||
// e.g. "camelCaseString" becomes "camel Case String"
|
||||
- (NSString *) splitCamelCaseString
|
||||
{
|
||||
NSMutableString *result = [NSMutableString string];
|
||||
NSScanner *scanner = [NSScanner scannerWithString: self];
|
||||
NSCharacterSet *uppercase = [NSCharacterSet uppercaseLetterCharacterSet];
|
||||
NSCharacterSet *lowercase = [NSCharacterSet lowercaseLetterCharacterSet];
|
||||
NSCharacterSet *letters = [NSCharacterSet letterCharacterSet];
|
||||
NSString *buffer;
|
||||
|
||||
while (![scanner isAtEnd])
|
||||
{
|
||||
if ([scanner scanCharactersFromSet: uppercase intoString: &buffer])
|
||||
{
|
||||
[result appendString: buffer];
|
||||
}
|
||||
|
||||
if ([scanner scanCharactersFromSet: lowercase intoString: &buffer])
|
||||
{
|
||||
if ([result length] > 0)
|
||||
{
|
||||
[result appendString: @" "];
|
||||
}
|
||||
|
||||
[result appendString: [buffer capitalizedString]];
|
||||
}
|
||||
if ([scanner scanCharactersFromSet: letters intoString: &buffer])
|
||||
{
|
||||
[result appendString: buffer];
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@end
|
Loading…
Reference in a new issue