2010-11-02 52 views

回答

0

从这发布http://www.cocoabob.net/?p=7

我使用的base64编码器和解码器,图像 把二进制数据转换成XML 数据,然后调用非文本数据 作为服务器和 客户端之间的文本数据。

下面是我的iPhone 项目中的一个示例。

base64.zip

下载这两个文件,然后导入 他们在您的项目,包括在类文件的 头文件。

(感谢乔纳森怀特,谁在2003年3月18日写了 吧)

里有BASE64 头文件的四种方法。

extern size_t EstimateBas64EncodedDataSize(size_t inDataSize); 
extern size_t EstimateBas64DecodedDataSize(size_t inDataSize); 
extern bool Base64EncodeData(const void *inInputData, size_t inInputDataSize, char *outOutputData, size_t *ioOutputDataSize, BOOL wrapped); 
extern bool Base64DecodeData(const void *inInputData, size_t inInputDataSize, void *ioOutputData, size_t *ioOutputDataSize) 

这里是一个字符串数据进行解码的使用。

NSString *stringValue = /*the UTF8 string parsed from xml data*/ 
Byte inputData[[stringValue lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];//prepare a Byte[] 
[[stringValue dataUsingEncoding:NSUTF8StringEncoding] getBytes:inputData];//get the pointer of the data 
size_t inputDataSize = (size_t)[stringValue length]; 
size_t outputDataSize = EstimateBas64DecodedDataSize(inputDataSize);//calculate the decoded data size 
Byte outputData[outputDataSize];//prepare a Byte[] for the decoded data 
Base64DecodeData(inputData, inputDataSize, outputData, &outputDataSize);//decode the data 
NSData *theData = [[NSData alloc] initWithBytes:outputData length:outputDataSize];//create a NSData object from the decoded data 
+0

感谢阿龙它帮了我很多 – kumar 2010-11-02 07:47:53

+0

@kumar你能标记答案正确的,如果它是有用的,这样对方就会知道 – 2010-11-02 11:48:17

+0

其在模拟器的工作,但它不是在设备工作我得到一个坏的exec访问 – kumar 2010-11-16 16:04:04