首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抓取特定ABPerson图片时崩溃

抓取特定ABPerson图片时崩溃
EN

Stack Overflow用户
提问于 2012-12-05 23:47:52
回答 2查看 576关注 0票数 3

我正在从用户的iOS地址簿/联系人应用程序中获取联系人的图像。并将它们放入字典中,作为JSON上传。

我收到以下错误:

代码语言:javascript
复制
2012-12-05 10:38:01.286 ContactsApp[6247:713f] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (__NSCFData)'
*** First throw call stack:
(0x2de6012 0x286ce7e 0x2de5deb 0x20926fe 0x2096b21 0x2dd3cdf 0x2dd387d 0x2dd37c5 0x20966fa 0x209262d 0x2096b21 0x2dd3cdf 0x2dd387d 0x2dd37c5 0x20966fa 0x209262d 0x20969af 0x2ddfe7c 0x2ddfa16 0x2ddf925 0x20968b8 0x2092679 0x2096b21 0x2dd3cdf 0x2dd387d 0x2dd37c5 0x20966fa 0x209262d 0x20923bd 0x209579c 0x1cad5 0x67475 0x66a87 0x14399cd 0x746008f 0x3dc253f 0x3dd4014 0x3dc52e8 0x3dc5450 0x90e36e12 0x90e1ecca)
libc++abi.dylib: terminate called throwing an exception

我使用了以下代码:

代码语言:javascript
复制
if (ABPersonHasImageData(addressBookContact)) {
    NSMutableDictionary *imageDictionary = [NSMutableDictionary dictionary];
    NSData *thumbnailImageData = (__bridge NSData *)ABPersonCopyImageDataWithFormat(addressBookContact, kABPersonImageFormatThumbnail);
    NSData *originalImageData = (__bridge NSData *)ABPersonCopyImageDataWithFormat(addressBookContact, kABPersonImageFormatOriginalSize);
    if (thumbnailImageData) [imageDictionary setObject:thumbnailImageData forKey:@"thumbnailImage"];
    if (originalImageData) [imageDictionary setObject:originalImageData forKey:@"originalImage"];
    [contactDictionary setObject:imageDictionary forKey:@"image"];
}

当我试图将数组放入此请求中时,出现错误:

代码语言:javascript
复制
[addressBookArray addObject:contactDictionary];
if ([addressBookArray count] % 15 == 0) {
    // I'm using AFNetworking
    [[APIClient sharedClient] requestWithMethod:@"POST" path:@"cmd/addContact" parameters:@{ @"addressBookEntries" : addressBookArray }];
    [addressBookArray removeAllObjects];
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-06 00:23:48

您的问题是您试图将NSData对象放入JSON对象中。将图像的base64编码添加到imageDictionary中,而不是将图像数据添加到imageDictionary中,应该没有问题。

Matt Gallagher在这里有一个处理base64的方便类:http://www.cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html

票数 2
EN

Stack Overflow用户

发布于 2012-12-06 00:24:34

看起来AFNetworking正在尝试将您的参数解析为JSON,但您向它传递的是一个NSData。尽管您向它传递了一个有效的NSDictionary,但这些嵌套类型必须是其他NSDictionaries、NSArrays、NSStrings和NSNumbers之一。如果您想要附加图像类型,则必须使用不同的NSDatas类型并附加图像数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13727043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档