从 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】:PFFile
是NSObject
的子类,因此无法调用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 [关闭]