Base64nl 1.2

Base64nl 1.2

测试已测试
语言语言 Obj-CObjective C
许可证 zlib
发布最新发布2014年12月

未声明 维护。



  • 作者
  • Nick Lockwood

注意:自 iOS 7 和 Mac OS 10.9 以来,此库不再需要

在 iOS 7 和 Mac OS 10.9 SDK 中,Apple 引入了新的 base64 方法,使得不再需要使用第三方 base 64 解码库。此外,它们暴露了对私有 base64 方法的访问,这些方法可以从 iOS 4 和 Mac OS 6 追溯性可用。

尽管不再需要使用此库,但您可能仍然会发现它有用,因为它抽象了支持旧 OS 版本删除的 Base64 方法的复杂性,并提供了一些额外的实用函数,如任意包装宽度和 NSString 编码。

目的

Base64 是一系列提供将数据编码和解码为 base-64 编码字符串的方法的类别。

支持的 OS & SDK 版本

  • 支持的构建目标 - iOS 7.0 / Mac OS 10.9 (Xcode 5.0, Apple LLVM 编译器 5.0)
  • 最早支持的部署目标 - iOS 5.0 / Mac OS 10.7
  • 最早兼容的部署目标 - iOS 4.3 / Mac OS 10.6

注意:“支持”意味着库已针对此版本进行测试。“兼容”意味着该库应该在该 iOS 版本上工作(即它不依赖于任何不可用的 SDK 功能),但不再测试兼容性,可能需要调整或修复错误才能正确运行。

ARC 兼容性

从版本 1.1 开始,Base64 需要 ARC。如果您希望在非 ARC 项目中使用 Base64,只需将 -fobjc-arc 编译器标志添加到 Base64.m 文件中。为此,请转到目标设置中的构建阶段选项卡,打开编译源文件组,双击列表中的 Base64.m,然后在弹出窗口中输入 -fobjc-arc。

如果您希望将整个项目转换为 ARC,请在 Base64.m 中注释掉 #error 行,然后运行 Xcode 中的编辑 > 重构 > 转换为 Objective-C ARC... 工具,并确保要使用 ARC 的所有文件(包括 Base64.m)都已选择。

线程安全

所有 Base64 方法都应在多个线程中同时调用。

安装

在应用程序中使用Base64类别,只需将类别文件(不需要示例文件和资源)拖入您的项目中,然后将头文件导入到希望使用Base64功能的所有类中。

NSData 扩展

Base64增加了以下方法

+ (NSData *)dataWithBase64EncodedString:(NSString *)string;

接收一个Base64编码的字符串,返回一个包含解码数据的autoreleased NSData对象。字符串中的任何非Base64字符都会被忽略,因此可以安全地传递包含换行符或其他分隔符的字符串。

- (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth;

将数据编码为Base64编码的字符串并返回它。wrapWidth参数允许您指定输出应该在新行上包裹的字符数。wrapWidth的值必须是四的倍数。不是四的倍数的值将被截断到最接近的倍数。值为零表示数据不应包裹。

- (NSString *)base64EncodedString;

将数据编码为无包裹(不带换行符)的Base64编码字符串。

NSString 扩展

Base64增加了以下方法

+ (NSString *)stringWithBase64EncodedString:(NSString *)string;

接收一个Base64编码的字符串,返回一个包含使用UTF8编码解码数据的autoreleased NSString对象。 vast majority of Base64编码的使用场景都使用Ascii或UTF8字符串,因此这应该足以满足大多数需求。如果您确实需要用UTF8之外的编码解码字符串数据,请先将字符串转换为NSData对象,然后使用NSData的dataWithBase64EncodedString:方法。

- (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth;

将字符串数据转换为UTF8数据,然后将数据编码为Base64编码的字符串并返回它。wrapWidth参数允许您指定输出应该在新行上包裹的字符数。wrapWidth的值必须是四的倍数。不是四的倍数的值将被截断到最接近的倍数。值为零表示数据不应包裹。

- (NSString *)base64EncodedString;

将字符串编码为UTF8数据,然后将它编码为无包裹(不带换行符)的Base64编码字符串。

- (NSString *)base64DecodedString;

将字符串作为Base64编码的字符串处理,并返回一个包含使用UTF8编码解码数据的autoreleased NSString对象。字符串中的任何非Base64字符都会被忽略,因此可以安全地使用包含换行符或其他分隔符的字符串。

- (NSData *)base64DecodedData;

将字符串作为Base64编码的数据处理,并返回一个包含解码数据的autoreleased NSData对象。字符串中的任何非Base64字符都会被忽略,因此可以安全地使用包含换行符或其他分隔符的字符串。