1

我有一个关于 NSDictionary 和 base64 String 的奇怪问题,我找不到问题所在。
这是代码:

  NSData *pictureData = [[NSData alloc]init];
    pictureData = UIImagePNGRepresentation([UIImage imageNamed:@"logo"]);
    NSString * picture = [pictureData base64EncodedString];
    picture = [picture stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];
    if(picture == nil){
        picture = @"";
    }

self.postDictionary = [[NSDictionary alloc]initWithObjectsAndKeys:picture,@"picture",@"some text",@"caption", nil];

发生的情况是如果我记录字符串“图片”,则日志非常好。但是当我尝试记录字典时,它会说这样的话

{
caption = "some text";
picture = "iVBORw0KGgoAAAANSUhEUgAAAoAAAABYCAIAAADqXdEfAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAHGlET1QAAAACAAAAAAAAACwAAAAoAAAALAAAACwAAI2cl9ZnZQAAQABJREFUeAGM3euyXVl5HmDdWa7EuYec7sDBlZSrErtS+RP/clXiuCr+YzAYaKDpBmPABpr0S...and it gets CUT some part then... picture = iVBORw0KGgoAAAANSUhEUgAAAoAAAABYCAIAAADqXdEfAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAHGlET1QAAAACAAAAAAAAACwAAAAoAAA..till the end of the base64 string";
}

问题是单词“picture”作为键也在图片内部的字符串对象中找到。先切base64字符串,然后是图片=然后是base64字符串的全文

不会发生在模拟器上,但会发生在设备上。之前还好。我没有更改代码上的任何内容。而且我也无法更改 NSDictionary 代码。

如果我不记录它,当网络服务收到 POST 时,它仍然是那样。

所以如果你们能帮我找到一个方法。谢谢 :)

4

0 回答 0