// From: http://www.cocoadev.com/index.pl?BaseSixtyFour
+ (NSString*)base64forData:(NSData*)theData {
const uint8_t* input = (const uint8_t*)[theData bytes];
NSInteger length = [theData length];
static char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
NSMutableData* data = [NSMutableData dataWithLength:((length + 2) / 3) * 4];
uint8_t* output = (uint8_t*)data.mutableBytes;
NSInteger i;
for (i=0; i < length; i += 3) {
NSInteger value = 0;
NSInteger j;
for (j = i; j < (i + 3); j++) {
value <<= 8;
if (j < length) {
value |= (0xFF & input[j]);
}
}
NSInteger theIndex = (i / 3) * 4;
output[theIndex + 0] = table[(value >> 18) & 0x3F];
output[theIndex + 1] = table[(value >> 12) & 0x3F];
output[theIndex + 2] = (i + 1) < length ? table[(value >> 6) & 0x3F] : '=';
output[theIndex + 3] = (i + 2) < length ? table[(value >> 0) & 0x3F] : '=';
}
return [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] autorelease];
}
分享到:
相关推荐
eclipse-java-2022-06-R-macosx-cocoa-aarch64.dmg 适用于macOS aarch64
在iOS开发中,GTMBase64是一个常用的库,它提供了对Base64编码和解码的支持。Base64是一种在网络上传输二进制数据时常见的编码方式,它将二进制数据转换为ASCII字符串,使得这些数据可以安全地通过只允许传输7位...
eclipse-java-2022-03-R-macosx-cocoa-aarch64.dmg 适用于macOS aarch64
Eclipse IDE for Java Developers (eclipse-java-2021-12-R-macosx-cocoa-aarch64.dmg)适用于macOS aarch64
eclipse-java-2023-12-R-macosx-cocoa-aarch64.dmg 适用于macOS Arm芯片系统
eclipse-cpp-2023-06-R-macosx-cocoa-aarch64.dmg 适用于macOS Arm芯片系统
eclipse-jee-2023-06-R-macosx-cocoa-aarch64.dmg 适用于macOS Arm芯片系统
3. **代理模式**:在Cocoa中,代理模式用于对象间通信,如UIViewController的delegate属性,允许一个对象(如视图控制器)委托另一个对象处理特定事件或任务。 4. **观察者模式**:NSNotification中心是观察者模式...
键值观察是Cocoa中自动化观察的一种方式,允许对象监听另一个对象的属性变化。通过调用`addObserver:forKeyPath:options:context:`方法,监听者可以在指定的键路径上注册,并在目标对象的属性改变时收到通知。KVO的...
Eclipse IDE for Java and DSL Developers(eclipse-dsl-2022-06-R-macosx-cocoa-aarch64.dmg) 适用于macOS aarch64: The essential tools for Java and DSL developers, including a Java & Xtend IDE, a DSL ...
- **定义与特点**:Cocoa是一个面向对象的应用程序开发环境,主要应用于Mac OS X操作系统之上。它不仅是一组面向对象的软件库集合,同时也是一个运行时环境,为开发者提供了构建高质量应用程序所需的工具与框架。 - ...
MemoryAnalyzer-1.11.0.20201202-macosx.cocoa.x86_64.dmg
eclipse-jee-2022-06-R-macosx-cocoa-aarch64.dmg 适用于macOS aarch64
eclipse-jee-2022-03-R-macosx-cocoa-x86_64.dmg
eclipse-java-2022-06-R-macosx-cocoa-x86_64.dmg 适用于macOS x86_64
JVM分析工具
在本教程中,我们将深入探讨如何在Cocoa中实现渐进色文字的绘制,以及解决使用`CGContextShowText`方法时可能出现的中文显示问题。 首先,`CGContextShowText`是Core Graphics框架中的一个函数,用于在当前图形上...
eclipse-jee-2023-09-R-macosx-cocoa-x86_64.dmg 适用于macOS Intel芯片系统