/NSString+Extras.m

http://github.com/bububa/MongoHub-Mac · Objective C · 84 lines · 56 code · 21 blank · 7 comment · 2 complexity · db33ec6ccdf74e2b06f78986502bcf81 MD5 · raw file

  1. //
  2. // NSString+Extras.m
  3. // MongoHub
  4. //
  5. // Created by Syd on 10-4-28.
  6. // Copyright 2010 ThePeppersStudio.COM. All rights reserved.
  7. //
  8. #import "NSString+Extras.h"
  9. @implementation NSString (Extras)
  10. + (NSString*)stringFromResource:(NSString*)resourceName {
  11. NSString *path = [[NSBundle mainBundle] pathForResource:resourceName ofType:nil];
  12. return [NSString stringWithContentsOfFile:path usedEncoding:nil error:nil];
  13. }
  14. # pragma Comparing
  15. - (BOOL)startsWithString:(NSString*)otherString {
  16. return [self rangeOfString:otherString].location == 0;
  17. }
  18. - (BOOL)endsWithString:(NSString*)otherString {
  19. return [self rangeOfString:otherString].location == [self length]-[otherString length];
  20. }
  21. - (BOOL)isPresent {
  22. return ![self isEqualToString:@""];
  23. }
  24. - (NSComparisonResult)compareCaseInsensitive:(NSString*)other {
  25. NSString *selfString = [self lowercaseString];
  26. NSString *otherString = [other lowercaseString];
  27. return [selfString compare:otherString];
  28. }
  29. - (NSString*)stringByPercentEscapingCharacters:(NSString*)characters {
  30. return [(NSString*)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)characters, kCFStringEncodingUTF8) autorelease];
  31. }
  32. - (NSString*)stringByEscapingURL {
  33. return [self stringByPercentEscapingCharacters:@";/?:@&=+$,"];
  34. }
  35. - (NSString*)stringByUnescapingURL {
  36. return [(NSString*)CFURLCreateStringByReplacingPercentEscapes(NULL, (CFStringRef)self, CFSTR("")) autorelease];
  37. }
  38. - (BOOL)containsString:(NSString *)aString {
  39. return [self containsString:aString ignoringCase:NO];
  40. }
  41. - (BOOL)containsString:(NSString *)aString ignoringCase:(BOOL)flag {
  42. unsigned mask = (flag ? NSCaseInsensitiveSearch : 0);
  43. return [self rangeOfString:aString options:mask].length > 0;
  44. }
  45. - (int)countSubstring:(NSString *)aString ignoringCase:(BOOL)flag {
  46. unsigned mask = (flag ? NSCaseInsensitiveSearch : 0);
  47. return [self rangeOfString:aString options:mask].length;
  48. }
  49. - (NSString *)stringByTrimmingWhitespace
  50. {
  51. return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
  52. }
  53. + (NSNull *)nullValue
  54. {
  55. return [NSNull null];
  56. }
  57. + (NSString*)UUIDString {
  58. CFUUIDRef theUUID = CFUUIDCreate(NULL);
  59. CFStringRef string = CFUUIDCreateString(NULL, theUUID);
  60. CFRelease(theUUID);
  61. return [(NSString *)string autorelease];
  62. }
  63. @end