Skip to content

Instantly share code, notes, and snippets.

@DwightChan
Forked from Abeansits/NSString+Extensions.h
Created October 14, 2016 12:35
Show Gist options
  • Save DwightChan/aebb1ece56fbcdec5e94b89cd6dd2f33 to your computer and use it in GitHub Desktop.
Save DwightChan/aebb1ece56fbcdec5e94b89cd6dd2f33 to your computer and use it in GitHub Desktop.

Revisions

  1. @Abeansits Abeansits revised this gist Jun 24, 2013. 1 changed file with 57 additions and 0 deletions.
    57 changes: 57 additions & 0 deletions NSString+Extensions.m
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,57 @@
    #import "NSString+Extensions.h"
    #import <CommonCrypto/CommonDigest.h>


    @implementation NSString (Extensions)

    + (NSString*)stringToSha1:(NSString*)str {
    const char *s = [str cStringUsingEncoding:NSUTF8StringEncoding];
    NSData *keyData = [NSData dataWithBytes:s length:strlen(s)];

    // This is the destination
    uint8_t digest[CC_SHA1_DIGEST_LENGTH] = {0};
    // This one function does an unkeyed SHA1 hash of your hash data
    CC_SHA1(keyData.bytes, keyData.length, digest);

    // Now convert to NSData structure to make it usable again
    NSData *out = [NSData dataWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];
    NSString *hash = [out description];

    NSCharacterSet *doNotWants = [NSCharacterSet characterSetWithCharactersInString:@"<> "];
    hash = [[hash componentsSeparatedByCharactersInSet:doNotWants] componentsJoinedByString:@""];

    return hash;
    }

    - (NSNumber*)stringToNSNumber {
    NSNumberFormatter* tmpFormatter = [[NSNumberFormatter alloc] init];
    [tmpFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
    NSNumber* theNumber = [tmpFormatter numberFromString:self];
    return theNumber;
    }

    - (BOOL)isEmpty {
    if ([self length] <= 0 || self == (id)[NSNull null] || self == nil) {
    return YES;
    }
    return NO;
    }

    - (BOOL)stringContainsSubString:(NSString *)subString {
    NSRange aRange = [self rangeOfString:subString];
    if (aRange.location == NSNotFound) {
    return NO;
    }

    return YES;
    }

    - (NSString*)stringByReplacingStringsFromDictionary:(NSDictionary*)dict {
    NSMutableString* string = [self mutableCopy];
    for (NSString* target in dict) {
    [string replaceOccurrencesOfString:target withString:[dict objectForKey:target] options:0 range:NSMakeRange(0, [string length])];
    }
    return string;
    }

    @end
  2. @Abeansits Abeansits created this gist Jun 24, 2013.
    13 changes: 13 additions & 0 deletions NSString+Extensions.h
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    #import <Foundation/Foundation.h>


    @interface NSString (Extensions)

    + (NSString *)stringToSha1:(NSString *)str;
    - (NSNumber*)stringToNSNumber;
    - (BOOL)isEmpty;
    - (BOOL)stringContainsSubString:(NSString *)subString;
    - (NSString *)stringByReplacingStringsFromDictionary:(NSDictionary *)dict;


    @end