root / Classes / NSString+Conveniences.m @ 45f2fce6
History | View | Annotate | Download (2.2 kB)
1 | 700184fb | Miltiadis Vasilakis | // |
---|---|---|---|
2 | 700184fb | Miltiadis Vasilakis | // NSString+Conveniences.m |
3 | 700184fb | Miltiadis Vasilakis | // OpenStack |
4 | 700184fb | Miltiadis Vasilakis | // |
5 | 700184fb | Miltiadis Vasilakis | // Created by Mike Mayo on 10/9/10. |
6 | 700184fb | Miltiadis Vasilakis | // The OpenStack project is provided under the Apache 2.0 license. |
7 | 700184fb | Miltiadis Vasilakis | // |
8 | 700184fb | Miltiadis Vasilakis | |
9 | 700184fb | Miltiadis Vasilakis | #import "NSString+Conveniences.h" |
10 | 700184fb | Miltiadis Vasilakis | |
11 | 700184fb | Miltiadis Vasilakis | |
12 | 700184fb | Miltiadis Vasilakis | @implementation NSString (Conveniences) |
13 | 700184fb | Miltiadis Vasilakis | |
14 | 700184fb | Miltiadis Vasilakis | - (BOOL)isURL { |
15 | 700184fb | Miltiadis Vasilakis | return [self hasPrefix:@"http://"] || [self hasPrefix:@"https://"]; |
16 | 700184fb | Miltiadis Vasilakis | } |
17 | 700184fb | Miltiadis Vasilakis | |
18 | 700184fb | Miltiadis Vasilakis | - (NSString *)replace:(NSString *)s with:(NSString *)r { |
19 | 700184fb | Miltiadis Vasilakis | if ([r isKindOfClass:[NSString class]]) { |
20 | 700184fb | Miltiadis Vasilakis | return [self stringByReplacingOccurrencesOfString:s withString:r]; |
21 | 700184fb | Miltiadis Vasilakis | } else { |
22 | 700184fb | Miltiadis Vasilakis | return [self stringByReplacingOccurrencesOfString:s withString:[r description]]; |
23 | 700184fb | Miltiadis Vasilakis | } |
24 | 700184fb | Miltiadis Vasilakis | } |
25 | 700184fb | Miltiadis Vasilakis | |
26 | 700184fb | Miltiadis Vasilakis | - (NSString *)replace:(NSString *)s withInt:(NSInteger)i { |
27 | 700184fb | Miltiadis Vasilakis | return [self replace:s with:[NSString stringWithFormat:@"%i", i]]; |
28 | 700184fb | Miltiadis Vasilakis | } |
29 | 700184fb | Miltiadis Vasilakis | |
30 | 45f2fce6 | Miltiadis Vasilakis | + (NSString *)encodeToPercentEscape:(NSString *)string { |
31 | 45f2fce6 | Miltiadis Vasilakis | return [((NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, |
32 | 45f2fce6 | Miltiadis Vasilakis | (CFStringRef)string, |
33 | 45f2fce6 | Miltiadis Vasilakis | NULL, |
34 | 45f2fce6 | Miltiadis Vasilakis | (CFStringRef)@"!*'();:@&=+$,/?%#[]", |
35 | 45f2fce6 | Miltiadis Vasilakis | kCFStringEncodingUTF8)) autorelease]; |
36 | 45f2fce6 | Miltiadis Vasilakis | } |
37 | 45f2fce6 | Miltiadis Vasilakis | |
38 | 45f2fce6 | Miltiadis Vasilakis | + (NSString *)encodeToPercentEscape:(NSString *)string charactersToEncode:(NSString *)charactersToEncode { |
39 | 45f2fce6 | Miltiadis Vasilakis | return [((NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, |
40 | 45f2fce6 | Miltiadis Vasilakis | (CFStringRef)string, |
41 | 45f2fce6 | Miltiadis Vasilakis | NULL, |
42 | 45f2fce6 | Miltiadis Vasilakis | (CFStringRef)charactersToEncode, |
43 | 45f2fce6 | Miltiadis Vasilakis | kCFStringEncodingUTF8)) autorelease]; |
44 | 45f2fce6 | Miltiadis Vasilakis | } |
45 | 45f2fce6 | Miltiadis Vasilakis | |
46 | 45f2fce6 | Miltiadis Vasilakis | |
47 | 45f2fce6 | Miltiadis Vasilakis | + (NSString *)decodeFromPercentEscape:(NSString *)string { |
48 | 45f2fce6 | Miltiadis Vasilakis | return [((NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, |
49 | 45f2fce6 | Miltiadis Vasilakis | (CFStringRef)string, |
50 | 45f2fce6 | Miltiadis Vasilakis | (CFStringRef)@"", |
51 | 45f2fce6 | Miltiadis Vasilakis | kCFStringEncodingUTF8)) autorelease]; |
52 | 45f2fce6 | Miltiadis Vasilakis | } |
53 | 45f2fce6 | Miltiadis Vasilakis | |
54 | 700184fb | Miltiadis Vasilakis | @end |