从 Parse.com 将徽标图像加载到 UIImage

Posted

技术标签:

【中文标题】从 Parse.com 将徽标图像加载到 UIImage【英文标题】:loading an logo image in to an UIImage from Parse.com 【发布时间】:2014-07-21 15:05:43 【问题描述】:

我正在尝试将徽标图像加载到 UiImage 中,徽标图像正在解析中,但不确定如何将其加载到视图控制器

.h 文件

@property (weak, nonatomic) IBOutlet UIImageView *Logo;

.m 文件

self.Logo.image = [self.exam objectForKey:@"Logo"];

它会抛出以下错误

-[PFFile 大小]: 无法识别的选择器发送到实例

所以我必须使用 PFfile 但不确定如何格式化我已经搜索过但大多数示例都有一个查询无效,我不需要查询,因为数据已经准备好了

self.exam objectForKey:@"Logo"

现在添加了

[self.exam objectForKey:@"Logo"];
self.Logo.image = [[UIImage alloc] initWithData: [self.exam objectForKey:@"Logo"]];

但得到以下错误图像是.png

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[PFFile length]: unrecognized selector sent to instance

NSlog 将文件显示为

Logo = "<PFFile: 0x111875190>";

【问题讨论】:

你应该使用 [self.exam objectForKey:@"Logo"].getData 而不是 [self.exam objectForKey:@"Logo"] 当我尝试在“id”类型的对象上找不到属性时 然后调用getter方法:[[self.exam objectForKey:@"Logo"] getData] 编译但当我点击查看控制器时.....'NSInvalidArgumentException',原因:'-[PFFile length]: unrecognized selector sent to instance 0x10d93d4a0' 那是因为你使用 PFFile 而不是 NSData。 【参考方案1】:
[self.exam objectForKey:@"Logo"];

PFFile 类的实例,但不是UIImage。 你应该转换它。您可以尝试以下操作:

self.Logo.image = [[UIImage alloc] initWithData: [[self.exam objectForKey:@"Logo"] getData]];

【讨论】:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[PFFile 长度]:无法识别的选择器发送到实例 0x10dc58e20 你添加了 [self.exam objectForKey:@"Logo"].getData 吗? 视图控制器加载但没有徽标图像的废料 可能数据为零。你应该检查一下。您也可以使用异步方法 - (void)getDataInBackgroundWithBlock:(PFDataResultBlock)block 我看到了。但是是什么原因呢?【参考方案2】:

PFFileNSObject的子类,因此无法调用UIImage'length方法,导致你的NSInvalidArgumentException。

您应该使用PFImageView 而不是您的 UIImageView。

.h 文件

@property (weak, nonatomic) IBOutlet PFImageView *Logo;

.m 文件

self.Logo.file = [self.exam objectForKey:@"Logo"];
[self.Logo.loadInBackground];

还可以使用带有完成块的loadInBackground: 方法。

【讨论】:

以上是关于从 Parse.com 将徽标图像加载到 UIImage的主要内容,如果未能解决你的问题,请参考以下文章

如何从 UIImageView 将图像上传到 Parse.com [关闭]

如何从 JSON 字符串转换图像数据?

使用 Parse 将缩略图图像加载到表格单元格中的问题

Swift 无法从 parse.com 检索图像

将图片从 Parse.com 加载到 imageview 到 Nav 标题

iCarousel + Parse:从 PFObject 加载异步图像