obj*_*ive 1 iphone base64 objective-c nsdata ios
如何检查NSString是否包含if语句中的base64数据?因为base64以完全随机的方式对数据进行编码,所以我无法在NSString中搜索短语,因此我需要检查字符串的内容是否会导致数据文件.
这是NSString我创建的应该有效的类别:
@interface NSString (MDBase64Additions)
- (BOOL)isBase64Data;
@end
@implementation NSString (MDBase64Additions)
- (BOOL)isBase64Data {
if ([self length] % 4 == 0) {
static NSCharacterSet *invertedBase64CharacterSet = nil;
if (invertedBase64CharacterSet == nil) {
invertedBase64CharacterSet = [[[NSCharacterSet
characterSetWithCharactersInString:
@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="]
invertedSet] retain];
}
return [self rangeOfCharacterFromSet:invertedBase64CharacterSet
options:NSLiteralSearch].location == NSNotFound;
}
return NO;
}
@end
Run Code Online (Sandbox Code Playgroud)
如果您希望数据中有换行符或空格,则可以更新此方法以首先删除这些(可能NSCharacterSet是+whitespaceCharacterSet).
如果主要只有一个类将使用此类别方法,则可以将此代码放在该类@implementation块上方的.m文件中.如果您认为您可能希望从多个类中使用该类别,则可以创建一个单独的.h和.m对来包含它(例如MDFoundationAdditions.h,MDFoundationAdditions.m),然后将其导入到这些类中.
使用:
NSString *dataString = /* assume exists */;
if ([dataString isBase64Data]) {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2179 次 |
| 最近记录: |