Remove leading and trailing spaces
March 10, 2013 in iOS Snippets
Removing start and end spaces of an NSString is very simple:
NSString* result = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
March 10, 2013 in iOS Snippets
Removing start and end spaces of an NSString is very simple:
NSString* result = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
March 10, 2013 in iOS Snippets
This new idiom is concise and clean:
NSNumber* intNumber = @([str intValue]);
March 4, 2013 in iOS Snippets
Method 1, making a copy:
NSString* str = [mutableStr copy];
Method 2, also making a copy:
NSString* str = [NSString stringWithString:mutableStr];
Method 3, passing the original mutable string as an NSString by casting (almost never used):
NSString* immutableRefToMutableString = (NSString*)mutableStr;
February 27, 2013 in iOS Snippets
A very common idiom:
if ([string length]) { // It's a string of at least one char, and is not null. }
Works because calling a method on nil is not an error – just silently returns nil, which is also false.
February 26, 2013 in iOS Snippets
For performance reasons we only create the formatter object once, and just reuse it afterwards. The formatter style can be easily tailored by duplicating the method and changing its options; we keep the method’s name as descriptive as possible of the conversion to be done. It is also a good idea to keep this in a category on NSString.
+ (NSString*)dateAsFullDateTime:(NSDate*)date; { static NSDateFormatter * formatter = nil; if (formatter == nil) { formatter = [[NSDateFormatter alloc] init]; [formatter setDateStyle:NSDateFormatterFullStyle]; [formatter setTimeStyle:NSDateFormatterLongStyle]; [formatter setDoesRelativeDateFormatting:NO]; } return [formatter stringFromDate:date]; }
February 26, 2013 in iOS Snippets
+ (NSString*)urlEncodeString:(NSString*)str; { return (__bridge_transfer NSString *) CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)str, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[ ]", kCFStringEncodingUTF8); }