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 |