NSString+XMLExtensions.h
#import <UIKit/UIKit.h>
@interface NSString(XMLExtensions)
+ (NSString *) encodeXMLCharactersIn:(NSString *)source;
+ (NSString *) decodeXMLCharactersIn:(NSString *)source;
@end
NSString+XMLExtensions.m
#import "NSString+XMLExtensions.h"
@implementation NSString(XMLExtensions)
+ (NSString *)encodeXMLCharactersIn:(NSString *)source {
if (![source isKindOfClass:[NSString class]] || !source)
return @"";
NSString *result = [NSString stringWithString:source];
if ([result rangeOfString:@"&"].location != NSNotFound)
result = [[result componentsSeparatedByString: @"&"] componentsJoinedByString: @"&"];
if ([result rangeOfString:@"<"].location != NSNotFound)
result = [[result componentsSeparatedByString: @"<"] componentsJoinedByString: @"<"];
if ([result rangeOfString:@">"].location != NSNotFound)
result = [[result componentsSeparatedByString: @">"] componentsJoinedByString: @">"];
if ([result rangeOfString:@"\""].location != NSNotFound)
result = [[result componentsSeparatedByString: @"\""] componentsJoinedByString: @"""];
if ([result rangeOfString:@"'"].location != NSNotFound)
result = [[result componentsSeparatedByString: @"'"] componentsJoinedByString: @"'"];
return result;
}
+ (NSString *) decodeXMLCharactersIn:(NSString *)source {
if (![source isKindOfClass:[NSString class]] || !source)
return @"";
NSString *result = [NSString stringWithString:source];
if ([result rangeOfString:@"&"].location != NSNotFound)
result = [[result componentsSeparatedByString: @"&"] componentsJoinedByString: @"&"];
if ([result rangeOfString:@"<"].location != NSNotFound)
result = [[result componentsSeparatedByString: @"<"] componentsJoinedByString: @"<"];
if ([result rangeOfString:@">"].location != NSNotFound)
result = [[result componentsSeparatedByString: @">"] componentsJoinedByString: @">"];
if ([result rangeOfString:@"""].location != NSNotFound)
result = [[result componentsSeparatedByString: @"""] componentsJoinedByString: @"\""];
if ([result rangeOfString:@"'"].location != NSNotFound)
result = [[result componentsSeparatedByString: @"'"] componentsJoinedByString: @"'"];
return result;
}
@end
分享到:
相关推荐
这个“NSString扩展类”是为了简化开发者的工作,将常见的字符串处理方法进行了封装,使得在处理复杂字符串任务时可以更高效、简洁。下面我们将详细探讨这个扩展类包含的知识点。 首先,`NSString+Addtions.h`文件...
### NSString扩展知识点解析 在iOS开发中,对基础类如`NSString`进行合理的扩展能够极大地提升代码的可读性和开发效率。以下是对“NSString扩展”文件中的知识点进行详细解析。 #### 文件基本信息 - **文件名**:`...
在iOS开发中,NSString是Objective-C中的一个基础类,用于处理和操作文本字符串。`NSString+Extended`通常指的是开发者为了增加NSString的功能而创建的一个类别(Category),它扩展了NSString的原有功能,提供了更...
/** * 返回文字的size * * @param font 文字大小 * * @param maxSize 限制的宽高 * * @return 返回Size */ ...+ (UIViewController*)stringChangeToClass:(NSString *)str; /** * MD5加密
`NSString+FileSize`是一个方便的扩展,它为NSString类添加了新的功能,使我们能够轻松地获取位于沙盒中的文件或文件夹的大小。在iOS应用中,由于安全性和隐私保护的原因,开发者只能访问特定的沙盒区域,而不能随意...
NSString (Emoji) 扩展了 NSString 类以提供与 Emoji 表情符号相关的自定义功能。 通过此类别,可以将转换为 unicode 表情符号字符,反之亦然(如果您需要将用户键入的消息发布到远程服务,则很有用)。 用法 只有...
为了方便开发者在实际项目中快速地进行手机号、银行卡号、身份证号和邮箱等常见格式的校验,通常会扩展`NSString` 类,添加一些便捷的方法。这就是`NSString+ToolString` 的核心内容。 首先,我们来理解`NSString+...
在iOS开发中,类的扩展(Extension)是一种强大的特性,它允许我们为现有的类添加方法、属性或协议,而无需继承。类扩展在Objective-C中称为分类(Category),而在Swift中被称为扩展(Extension)。这种机制使得...
NSString哈希 NSString类别,用于MD5,SHA1,SHA256,SHA512哈希和具有较小内存使用量的文件的哈希 NSString哈希方法 string.md5String string.sha1String string.sha256String string.sha512String HMAC哈希方法...
首先,`NSString`的富文本处理主要依赖于`NSAttributedString`类和它的扩展`NSMutableAttributedString`。这两个类允许我们创建和修改带有属性的字符串,如设置特定部分的字体、颜色或者下划线样式。`...
在iOS开发中,NSString是处理文本数据的基本类,它提供了丰富的字符串操作方法。然而,当字符串中含有Unicode编码时,可能会遇到一些问题,如显示异常或处理困难。"NSString+ReplaceUnicode"是一个类别(Category)...
在Objective-C中,NSString是一个非常重要的类,它代表不可变的Unicode字符串。在某些场景下,我们需要对NSString进行一些特定的处理,比如将其转换为十六进制表示。`NSString-HEX`就是一个针对NSString的类别,提供...
以下是一个简单的例子,展示了如何为`NSString`类定义一个名为`Extension`的分类,以增加一个新的方法`isValidEmail:`。 ```objc // NSString+Extension.h #import @interface NSString (Extension) - (BOOL)...
通过扩展`NSString`类,我们可以创建类别(categories)来增加额外的方法,提高代码的复用性和可维护性。 首先,让我们理解`NSString`类别。在Objective-C中,类别允许我们给已存在的类添加方法,而无需继承。这...
例如,可以为NSString类添加一个计算字符串长度的方法,或者为UIImage类添加一个处理图片的便捷方法。分类通常用于对系统类进行功能扩展,避免过多的类别继承导致类层次结构复杂。 **工具类(Utility Class)** ...
这使得我们可以对系统类进行扩展,为它们注入自定义功能,或者整理代码,使其更加模块化。以下是对"iOS类的分类方法"的详细解释。 1. **类别定义** 类别定义通常以`@interface`开始,接着是目标类的名字,后面加上...
本项目中,创建了对iOS基本类的扩展,特别是针对`NSString`和`NSData`,目的是为了方便地实现数据加密,主要涉及到MD5和SHA加密算法。 MD5(Message-Digest Algorithm 5)和SHA(Secure Hash Algorithm)是两种广泛...
1. **UITextField+Jex.h**:头文件声明了扩展类的方法签名。 2. **UITextField+Jex.m**:实现文件提供了具体的实现逻辑。 #### 类扩展详解 ##### 1. **UITextField (Jex)** 这是一个类别(Category)的实现,通过...
因此,扩展`NSData`类以增强其功能是一种常见的实践。 #### 1. JSON处理能力 在`NSData`的扩展中,添加了`JSONData`、`dataWithJSONData:`以及`JSONString`三个方法,这使得`NSData`能够直接处理JSON数据。通过...
从给定的文件信息来看,这是一份针对`UIApplication`类的扩展,主要涉及了对应用状态、资源管理、通知、通信以及文件操作等方面的增强功能。以下是对这些知识点的详细解析: ### UIApplication扩展概述 `...