GTMBase64
Base64.h
[cpp] view plaincopy
- //
- // GTMBase64.h
- //
- // Copyright 2006-2008 Google Inc.
- //
- // Licensed under the Apache License, Version 2.0 (the "License"); you may not
- // use this file except in compliance with the License. You may obtain a copy
- // of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- // License for the specific language governing permissions and limitations under
- // the License.
- //
- #import <Foundation/Foundation.h>
- #import "GTMDefines.h"
- // GTMBase64
- //
- /// Helper for handling Base64 and WebSafeBase64 encodings
- //
- /// The webSafe methods use different character set and also the results aren"t
- /// always padded to a multiple of 4 characters. This is done so the resulting
- /// data can be used in urls and url query arguments without needing any
- /// encoding. You must use the webSafe* methods together, the data does not
- /// interop with the RFC methods.
- //
- @interface GTMBase64 : NSObject
- //
- // Standard Base64 (RFC) handling
- //
- // encodeData:
- //
- /// Base64 encodes contents of the NSData object.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- +(NSData *)encodeData:(NSData *)data;
- // decodeData:
- //
- /// Base64 decodes contents of the NSData object.
- //
- /// Returns:
- /// A new autoreleased NSData with the decoded payload. nil for any error.
- //
- +(NSData *)decodeData:(NSData *)data;
- // encodeBytes:length:
- //
- /// Base64 encodes the data pointed at by |bytes|.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- +(NSData *)encodeBytes:(const void *)bytes length:(NSUInteger)length;
- // decodeBytes:length:
- //
- /// Base64 decodes the data pointed at by |bytes|.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- +(NSData *)decodeBytes:(const void *)bytes length:(NSUInteger)length;
- // stringByEncodingData:
- //
- /// Base64 encodes contents of the NSData object.
- //
- /// Returns:
- /// A new autoreleased NSString with the encoded payload. nil for any error.
- //
- +(NSString *)stringByEncodingData:(NSData *)data;
- // stringByEncodingBytes:length:
- //
- /// Base64 encodes the data pointed at by |bytes|.
- //
- /// Returns:
- /// A new autoreleased NSString with the encoded payload. nil for any error.
- //
- +(NSString *)stringByEncodingBytes:(const void *)bytes length:(NSUInteger)length;
- // decodeString:
- //
- /// Base64 decodes contents of the NSString.
- //
- /// Returns:
- /// A new autoreleased NSData with the decoded payload. nil for any error.
- //
- +(NSData *)decodeString:(NSString *)string;
- //
- // Modified Base64 encoding so the results can go onto urls.
- //
- // The changes are in the characters generated and also allows the result to
- // not be padded to a multiple of 4.
- // Must use the matching call to encode/decode, won"t interop with the
- // RFC versions.
- //
- // webSafeEncodeData:padded:
- //
- /// WebSafe Base64 encodes contents of the NSData object. If |padded| is YES
- /// then padding characters are added so the result length is a multiple of 4.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- +(NSData *)webSafeEncodeData:(NSData *)data
- padded:(BOOL)padded;
- // webSafeDecodeData:
- //
- /// WebSafe Base64 decodes contents of the NSData object.
- //
- /// Returns:
- /// A new autoreleased NSData with the decoded payload. nil for any error.
- //
- +(NSData *)webSafeDecodeData:(NSData *)data;
- // webSafeEncodeBytes:length:padded:
- //
- /// WebSafe Base64 encodes the data pointed at by |bytes|. If |padded| is YES
- /// then padding characters are added so the result length is a multiple of 4.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- +(NSData *)webSafeEncodeBytes:(const void *)bytes
- length:(NSUInteger)length
- padded:(BOOL)padded;
- // webSafeDecodeBytes:length:
- //
- /// WebSafe Base64 decodes the data pointed at by |bytes|.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- +(NSData *)webSafeDecodeBytes:(const void *)bytes length:(NSUInteger)length;
- // stringByWebSafeEncodingData:padded:
- //
- /// WebSafe Base64 encodes contents of the NSData object. If |padded| is YES
- /// then padding characters are added so the result length is a multiple of 4.
- //
- /// Returns:
- /// A new autoreleased NSString with the encoded payload. nil for any error.
- //
- +(NSString *)stringByWebSafeEncodingData:(NSData *)data
- padded:(BOOL)padded;
- // stringByWebSafeEncodingBytes:length:padded:
- //
- /// WebSafe Base64 encodes the data pointed at by |bytes|. If |padded| is YES
- /// then padding characters are added so the result length is a multiple of 4.
- //
- /// Returns:
- /// A new autoreleased NSString with the encoded payload. nil for any error.
- //
- +(NSString *)stringByWebSafeEncodingBytes:(const void *)bytes
- length:(NSUInteger)length
- padded:(BOOL)padded;
- // webSafeDecodeString:
- //
- /// WebSafe Base64 decodes contents of the NSString.
- //
- /// Returns:
- /// A new autoreleased NSData with the decoded payload. nil for any error.
- //
- +(NSData *)webSafeDecodeString:(NSString *)string;
- @end
Base64.m
[cpp] view plaincopy
- //
- // GTMBase64.m
- //
- // Copyright 2006-2008 Google Inc.
- //
- // Licensed under the Apache License, Version 2.0 (the "License"); you may not
- // use this file except in compliance with the License. You may obtain a copy
- // of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- // WARRANTIES OR CONDITIONS OF ANY KIND, either express or imp
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: 快速开启小太阳图标、解决显卡亮度调节。(适用于多种显卡驱动方式)
- 下一篇: 关于NSSet的一点总结