使用Parse作为Layer用户的后端

时间:2015-08-12 20:03:44

标签: ios objective-c parse-platform layer

我使用Parse作为后端管理用户在消息传递应用中使用,并使用Layer提供的消息服务。

Layer定义用户对象必须符合的ATLParticipant协议。这反过来指定用于显示用户化身的ATLAvatarItem协议。 ATLAvatarItem协议的一个属性是UIImage *avatarImage

由于我的用户是Parse对象,因此头像图像作为PFFile存储在用户身上。当然,我想检索数据以创建UIImage并在后台完成avatarImage的请求,以免阻塞主线程并锁定UI。但是,这意味着调用getDataInBackgroundWithBlock:,这意味着我对avatarImage的调用返回nil,因为块在返回之前未触发。

目前,我有以下代码来检查数据是否已经在返回UIImage之前下载,或者在后台下载数据以准备下次请求图像。这仍然可以获取主线程上的数据。

- (UIImage *)avatarImage {
    if(self.photo.isDataAvailable) {
        return [UIImage imageWithData:[self.photo getData]];
    }
    else {
        [self.photo getDataInBackground];
        return nil;
    }
}

有没有更好的方法可以从PFFile获取数据并返回UIImage,而不会阻止UI?

0 个答案:

没有答案