Statistics
| Branch: | Tag: | Revision:

root / Classes / NSString+Conveniences.m @ 45f2fce6

History | View | Annotate | Download (2.2 kB)

1
//
2
//  NSString+Conveniences.m
3
//  OpenStack
4
//
5
//  Created by Mike Mayo on 10/9/10.
6
//  The OpenStack project is provided under the Apache 2.0 license.
7
//
8

    
9
#import "NSString+Conveniences.h"
10

    
11

    
12
@implementation NSString (Conveniences)
13

    
14
- (BOOL)isURL {
15
    return [self hasPrefix:@"http://"] || [self hasPrefix:@"https://"];
16
}
17

    
18
- (NSString *)replace:(NSString *)s with:(NSString *)r {
19
    if ([r isKindOfClass:[NSString class]]) {
20
        return [self stringByReplacingOccurrencesOfString:s withString:r];
21
    } else {
22
        return [self stringByReplacingOccurrencesOfString:s withString:[r description]];
23
    }
24
}
25

    
26
- (NSString *)replace:(NSString *)s withInt:(NSInteger)i {
27
    return [self replace:s with:[NSString stringWithFormat:@"%i", i]];
28
}
29

    
30
+ (NSString *)encodeToPercentEscape:(NSString *)string {
31
    return [((NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, 
32
                                                                 (CFStringRef)string, 
33
                                                                 NULL, 
34
                                                                 (CFStringRef)@"!*'();:@&=+$,/?%#[]", 
35
                                                                 kCFStringEncodingUTF8)) autorelease];
36
}
37

    
38
+ (NSString *)encodeToPercentEscape:(NSString *)string charactersToEncode:(NSString *)charactersToEncode {
39
    return [((NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, 
40
                                                                 (CFStringRef)string, 
41
                                                                 NULL, 
42
                                                                 (CFStringRef)charactersToEncode, 
43
                                                                 kCFStringEncodingUTF8)) autorelease];
44
}
45

    
46

    
47
+ (NSString *)decodeFromPercentEscape:(NSString *)string {
48
    return [((NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, 
49
                                                                                 (CFStringRef)string,
50
                                                                                 (CFStringRef)@"", 
51
                                                                                 kCFStringEncodingUTF8)) autorelease];
52
}
53

    
54
@end